我试图在我的应用程序的资源中嵌入一些文本文件,但是当我尝试使用 GetManifestResourceStream()
检索它时,我得到了 null。我已经尝试了所有这些名称组合:
- 程序名.Form1.foo.txt
- 程序名.foo.txt
- Form1.foo.txt
- programName.Properties.Resources.resources.foo.txt
一些信息:
命名空间是 programName
,我从中调用此代码的类是 Form1
,我尝试检索的文件名资源是 foo.txt
.
代码:
var resourceName = string.Format("???.{0}", filename);
var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
该文件可通过使用 Properties.Resources.foo
获得,但是当我从字符串中获取文件名时,我无法使用它。
最佳答案
确保您的文件的构建操作是“嵌入式资源”。
如果您的文件位于文件夹中,则必须包括文件夹的名称。
例如,如果我在我的 WindowsFormsApplication1 项目中创建一个文件夹“xx”并添加一个文件“dictionary.txt”,名称将为 WindowsFormsApplication1.xx.dictionary.txt
无论如何,只需使用它来查看您的所有资源
var files = Assembly.GetExecutingAssembly().GetManifestResourceNames();
关于c# - GetManifestResourceStream() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30922151/