2013-02-17 68 views

回答

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提供了关于访问嵌入式资源的更多细节。

+0

如果您在获取资源的完全限定名称时遇到问题,请参阅本文以了解如何使用ILDASM来查找它(http://www.codeproject.com/Articles/114997/Embedding-and-Using-Resources-from -Net组装)。 – 2013-02-17 17:21:53