Я хотел бы использовать другой значок для демонстрационной версии моей игры, и я создаю демонстрацию с другой конфигурацией сборки, чем для полной версии, используя определение препроцессора для блокировки некоторого контента, использую другую графику, и т.д. Есть ли способ заставить Visual Studio использовать другой значок для значка приложения в демонстрационной конфигурации, но продолжать использовать обычный значок для конфигурации полной версии?





Это поможет вам на полпути: http://www.codeproject.com/KB/dotnet/embedmultipleiconsdotnet.aspx
Затем вам нужно найти вызов Win32, который установит отображаемый значок из списка встроенных значков.
Я не знаю способа в visual studio, потому что настройки приложения привязаны к проекту дыры. Но простой способ - использовать событие PreBuild и скопировать app.demo.ico в app.ico или app.release.ico в app.ico, требуя значение ключа $ (ConfigurationName), и обратиться к приложению. ico в каталоге вашего проекта.
Согласно эта страница вы можете использовать директивы препроцессора в вашем * .rc файле. Вы должны написать что-то вроде этого
#ifdef _DEMO_VERSION_
IDR_MAINFRAME ICON "demo.ico"
#else
IDR_MAINFRAME ICON "full.ico"
#endif
Это лучшее решение. Сначала я не понимал, что это работает, потому что проводник кэшировал мой значок, поэтому я также обнаружил, что вы можете установить условия через свойства этого значка в средстве просмотра ресурсов.
Что бы я сделал, так это настроить событие перед сборкой (Свойства проекта -> Свойства конфигурации -> События сборки -> Событие перед сборкой). Событие перед сборкой - это командная строка. Я бы использовал это, чтобы скопировать соответствующий файл значка в значок сборки.
Например, предположим, что ваш значок сборки - «app.ico». Я бы сделал свой фулликон app_full.ico и значок демонстрации app_demo.ico. Затем я бы установил свои предварительные события следующим образом:
Событие предварительной сборки в полном режиме:
del app.ico | copy app_full.ico app.ico
Событие предварительной сборки в демонстрационном режиме:
del app.ico | copy app_demo.ico app.ico
Надеюсь, это поможет!
Вы действительно можете использовать директивы препроцессора в вашем rc-файле. Я бы сказал, что это способ сделать это. +1