Вот что я сделал:
Я создал файл 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 compiler, я скомпилировал все и включил в свой 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.
Любые идеи будут с благодарностью, спасибо!