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

我还尝试不要将文本文件放在.resx文件中。

4

1 回答 1

4

您正在使用的StreamReader构造函数期望文件存在于磁盘上。如果文件嵌入在您的程序集中,您可以使用该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有更多关于访问嵌入式资源的细节。

于 2013-02-17T17:07:48.947 回答