Как встроить ресурс, чтобы к нему можно было получить доступ для значков?

У меня есть проект С#, использующий VS2005. В основном у меня есть два значка: один для приложения и один для файлов, связанных с приложением.

Я связал эти файлы с приложением, и я знаю, как установить их значки в реестре, но я могу установить их только для значка приложения, потому что это, похоже, единственный внешний ресурс.

Я пробовал иметь значки либо в файле ресурсов (.resx), либо в виде отдельного файла (.ico), который компилируется в exe во время компиляции, но ни один из них не работает.

Чтобы показать, что я имею в виду, я создал приложение и открыл его с помощью Resource Hacker, и вы заметите, что там только один из двух значков, с использованием одного значка и одной группы значков.

http://img442.imageshack.us/img442/3189/resourcesx.jpg


person User2400    schedule 27.04.2010    source источник
comment
Я думаю, что смогу внедрить такие ресурсы, если смогу заставить .exe появиться в моем дереве решений, но пока я не могу этого добиться.   -  person User2400    schedule 27.04.2010


Ответы (3)


Я не думаю, что это можно сделать. Возможно, вам придется прибегнуть к проекту C++, где вы можете встроить значки таким образом, чтобы оболочка могла их распознать. Обратите внимание, что это не означает, что dll должна содержать что-то еще;) Но я не думаю, что сборки .NET могут содержать ресурсы, совместимые с оболочкой.

person TomTom    schedule 27.04.2010
comment
Но значки приложений доступны из оболочки, поэтому должен быть способ, может быть, путем редактирования файла проекта? - person User2400; 27.04.2010

Я считаю, что вы можете сделать это, напрямую вызвав компилятор C#. Этот раздел MSDN содержит полезную информацию.

Работа с ресурсами с помощью csc.exe

person João Angelo    schedule 27.04.2010

В конце концов, я просто сохранил .ico в файле ресурсов, встроенном в .exe, а затем извлек его в папку AppData для использования Проводником.

person User2400    schedule 02.05.2010