C#我在使用StreamReader读取资源内的文本文件时遇到了FileNotFoundexception

using (SteamReader sr = new StreamReader("text.txt")) 

我还试图不将文本文件放在.resx文件上。

您正在使用的StreamReader构造函数希望该文件存在于磁盘上。 如果文件嵌入在程序GetManifestResourceStream可以使用GetManifestResourceStream方法。

例如:

 // Get the current assembly. If the file is embedded inside a different // assembly you will need to get that assembly var assembly = Assembly.GetExecutingAssembly(); using (var stream = assembly.GetManifestResourceStream("AssemblyName.test.txt")) using (var sr = new StreamReader(stream)) { ... } 

资源嵌入到程序集中的关键取决于文件位于层次结构中的位置。 它总是以程序集名称为前缀,然后是任何可能的子文件夹(如果有的话)。

确保在其属性中将Build Action设置为此文件的Embedded Resource 。 这里an article ,详细介绍了访问嵌入式资源。