【发布时间】:2015-06-19 02:10:20
【问题描述】:
我正在尝试在我的应用程序资源中嵌入一些文本文件,但是当我尝试使用 GetManifestResourceStream() 检索它时,我得到了 null。我已经尝试了所有这些名称组合:
- programName.Form1.foo.txt
- programName.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 获得,但当我从字符串中获取文件名时,我无法使用它。
【问题讨论】:
-
如果不确定,请使用 il spy、reflector 或任何其他 .net 反编译器打开您的程序,并在其中找到正确的资源名称。
-
@Oscar 似乎文本文件放在
programName.Properties.Resources.resources上不应该放在programName.Form1.resources上而不是?在最后一个上有应用程序的图标和背景之类的东西。我想这就是为什么我得到 null -
这取决于您如何创建资源文件。用反编译得到的值试试。
-
我通过项目 -> 属性 -> 资源 -> 添加现有文件创建/添加了它们。这是正确的方法吗?
标签: c# winforms resources .net-4.5 embedded-resource