選択しているビルド構成によって実行ファイルのアイコンを変更する

ページ更新日 :
ページ作成日 :

環境

フレームワーク
  • Windows Forms (.NET Framework) 全般
  • Windows Forms (.NET) 全般
  • WPF (.NET Framework) 全般
  • WPF (.NET) 全般

はじめに

通常は一つの EXE プロジェクトに設定できるアイコンはひとつのみですが、 ここでは選択しているビルド構成によって作成された EXE ファイルのアイコンを切り替える方法について説明します。

手順として上げているプログラムはプロジェクトを新規で作成した状態のものから始めています。 すでに構築しているプロジェクトに対しても設定することは可能です。

ここでは初期状態で構成されている「Debug」「Release」のビルドによってアイコンを変えるように設定しています。 また、例として「Windows Forms (.NET)」のプロジェクトで説明していますが、冒頭に記載している他のフレームワークでも手順は同じです。

アイコンファイルの用意

今回は参考として図のようなアイコンを用意しています。

アイコンファイルの設定

Visual Studio 上で通常の手順で EXE ファイルにアイコンを適用できるように登録します。

.NET (Core) の場合

プロジェクトに1つ目のアイコンファイルが追加されます。

同じ手順で2つ目のアイコンも選択します。

プロジェクトに2つ目のアイコンファイルが追加されます。

1つ目のアイコンの設定が上書きされてしまいますが、今回エディタ上の設定は関係ないので無視してください。 プロジェクトに2つのアイコンが登録されていることが重要です。

.NET Framework の場合

プロジェクトに1つ目のアイコンファイルが追加されます。

同じ手順で2つ目のアイコンも選択します。

プロジェクトに2つ目のアイコンファイルが追加されます。

1つ目のアイコンの設定が上書きされてしまいますが、今回エディタ上の設定は関係ないので無視してください。 プロジェクトに2つのアイコンが登録されていることが重要です。

ビルド構成を確認する

ツールバーにあるビルド構成を確認します。

ここに表示されているビルド構成の名前をアイコンの切替判定として使用します。 初期プロジェクトでは「Debug」と「Release」がありますのでこれを使用します。

プロジェクトファイルのコードを開く

プロジェクトファイルを右クリックして「プロジェクト ファイルの編集」を選択します。

このメニューは .NET (Core) のプロジェクトにしかありませんので、.NET Framework のプロジェクトの場合は .csproj ファイルをテキストエディタで開いてください。

プロジェクトファイルのコードを編集する

ここでは .NET (Core) プロジェクトを例として説明していますが、.NET Framework でも手順は同じです。

.NET のプロジェクトのコードは以下のようになっていると思います。(一例なので実際はプロジェクトによって違います)

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net6.0-windows</TargetFramework>
    <Nullable>enable</Nullable>
    <UseWindowsForms>true</UseWindowsForms>
    <ImplicitUsings>enable</ImplicitUsings>
    <ApplicationIcon>2.ico</ApplicationIcon>
  </PropertyGroup>

  <ItemGroup>
    <Content Include="2.ico" />
  </ItemGroup>

</Project>

この中の PropertyGroup > ApplicationIcon の値が実行ファイルに適用されるアイコンファイルとなります。 これらのタグには条件を付けることができ、ビルド構成によってアイコンの適用を変えるには ApplicationIcon の箇所を以下のように修正します。

<ApplicationIcon Condition=" '$(Configuration)' == 'Debug' ">1.ico</ApplicationIcon>
<ApplicationIcon Condition=" '$(Configuration)' == 'Release' ">2.ico</ApplicationIcon>

Condition パラメータに条件を記載することができ、$(Configuration) にはビルド時点のビルド構成の名前が入っています。 その値が Debug なら 1.ico を、Release なら 2.ico を使用するという条件を記載しています。 プロジェクトでビルド構成の名前を変えている場合は Debug Release の名前を変えてください。アイコンを増やす場合はタグを増やしてください。

後はコードを保存して対象のビルド構成でビルドするだけです。

ビルド結果

Debug でビルドした実行ファイルは以下のようになります。

Release でビルドした実行ファイルは以下のようになります。