Разные значки для разных конфигураций (WinForm)

#c# #.net #visual-studio #winforms

#c# #.net #visual-studio #winforms

Вопрос:

У меня есть проект с конфигурациями выпуска 2 . Они похожи, но с небольшими отличиями. Я хочу разместить разные значки для обоих вариантов проекта. Значок для основной формы изменен программно. Но значок, используемый для exe-файла, задается из свойств проекта (Visual Studio 2010), а на вкладке приложения значок является глобальным для всех конфигураций (например, Debug, Release A, Release B). Есть ли способ установить значок-1 для выпуска A и значок-2 для выпуска B? Единственное решение на данный момент — использовать значок с тем же именем и определить событие предварительной сборки для замены рабочего значка файлами icon-1 и icon-2.

Комментарии:

1. Для этого вы можете использовать условные обозначения msbuild

2. Общие свойства проекта MSBuild

Ответ №1:

Как предлагали другие, вы можете использовать MSBuild свойства для установки разных значков для разных конфигураций.

Вы можете отредактировать свой файл .csproj и добавить ApplicationIcon в PropertyGroup .

Например, следующее:

   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <ApplicationIcon>D:1.ico</ApplicationIcon>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <ApplicationIcon>D:2.ico</ApplicationIcon>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release A|AnyCPU'">
      <ApplicationIcon>D:3.ico</ApplicationIcon>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release B|AnyCPU'">
        <ApplicationIcon>D:4.ico</ApplicationIcon>
    <OutputPath>binRelease B</OutputPath>
  </PropertyGroup>
  
  

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

Результат: введите описание изображения здесь

Комментарии:

1. Возможно, мы говорим о разных вещах. Откройте проводник Windows и посмотрите значок соответствующего EXE-файла. Это невозможно изменить с помощью Form_Load Event , потому что исполняемый файл не запущен. Значок в форме (главное окно) легко изменить во время выполнения.

2. @i486, извините за недоразумение, теперь я обновил свой ответ. У него могут быть разные значки для разных конфигураций соответствующего exe.