Понимание политики значков в приложении C # - PullRequest
0 голосов
/ 01 сентября 2011

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

Я добавил значок в файл ресурсов.Я также добавил значок в папку «Ресурсы» в Visual Studio.Тем не менее, когда я перезагружаю свой компьютер, индекс одного не имеет значка, а индекс нуля является значком приложения.

Я попытался установить постоянство значка на «Embedded in .resx».Не помогло.

Я добавил новый файл ресурсов с именем PublicIcons.resx, установил модификатор доступа «Public» и добавил значок.Также не помогло.

Я попытался добавить значок непосредственно в проект и установить для действия сборки значение «Встроенный ресурс».Опять не помогло.

Гаааа!Почему такая простая задача так раздражает?

Как добавить значок в проект C # в Visual Studio, а затем найти индекс этого значка, чтобы его можно было использовать для типа файла?

спасибо, Энди

1 Ответ

0 голосов
/ 01 сентября 2011

Я решил это. Сегодня я часами пытался решить эту простую задачу - читать о проектах установки и развертывания, ClickOnce, файлах манифеста, тегах fileAssociation, файлах ресурсов Visual Studio 2010, и так далее, и далее. Но вот как решить проблему буквально за две минуты:

В вашем решении VS2010 добавьте новый пустой проект C ++: Добавить -> Новый проект -> Visual C ++ -> Пустой проект. Я назвал свою "ResourceLibrary".

Щелкните правой кнопкой мыши папку Resource Files, затем выберите Add -> Resource ... и выберите значок.

Щелкните правой кнопкой мыши папку «Исходные файлы», затем выберите «Добавить» -> «Новый элемент» -> «Файл C ++». Я позвонил в мой main.cpp. Введите:

int main(void) { return 0; }

Затем скомпилируйте и свяжите ваш файл с нулевым индексом значка в ResourceLibrary.exe, используя соответствующую запись реестра и программу установки по вашему выбору!

Просто и эффективно.

...