这是我所做的:
resource.resx
我使用我的 IDE (SharpDevelop)创建了一个文件并添加了一个文件logo.ico
。resource.resx 文件如下所示:
<data name="logo" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAA... (etc etc)
然后我把ResGen.exe
它编译resource.resx
成一个有效的resource.resources
文件。
resgen.exe resource.resx resource.resources
使用命令行 JScript.NET 编译器,我编译了所有内容并包含了resource.resources
我的徽标文件。
jsc /res:resource.resources /out:app.exe /reference:UI.dll,Remote.dll app.cs
现在我想从我的代码中访问这个标志文件,所以我得到了这个:
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
System.Drawing.Icon icon = new System.Drawing.Icon(assembly.GetManifestResourceStream("resource.resources.logo"));
但是我得到一个运行时异常,GetManifestResourceStream
它是空的。
我想这是一个命名空间问题,所以我尝试只使用访问资源文件,GetManifestResourceStream("resource.resources")
但我得到了另一个异常:
Argument 'picture' must be a picture that can be used as a Icon.
任何想法将不胜感激,谢谢!