ビルド構成を新規作成した時、デバッグに適した設定と、リリースに適した設定は異なります。
デバッグ用のビルド構成と、リリース用のビルド構成を、2つ作成する方法も考えられますが、ここでは1つのビルド構成での設定を解説します。
Visual Studio 2022
準備
NewBuildを新規作成
構成マネージャーで、NewBuildを新規作成
カスタム記号を追加。
プロジェクトのプロパティ ビルドで、
NewBuildカスタム記号に、DebugNewBuild
を追加。
公開時の処理
DebugNewBuildを無効にする。
<DefineConstants>$(DefineConstants);DebugNewBuild</DefineConstants>
を、コメントアウトする。
Optimizeを有効にする
コードで、<Optimize>
を、Trueにしても良い。
有効にすると、ブレークポイントが効かないため、開発時には不向き。
プロジェクト ファイル
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net9.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UseWPF>true</UseWPF>
<Configurations>Debug;Release;NewBuild</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='NewBuild|AnyCPU'">
<!--NewBuildで、開発時の処理に利用。リリース時にはコメントアウトする。-->
<DefineConstants>$(DefineConstants);DebugNewBuild</DefineConstants>
<!-- Trueにすると、ブレークポイントが効かない。リリース時には、Trueにする。-->
<Optimize>False</Optimize>
</PropertyGroup>
</Project>
実行コード例
private void Button_Click(object sender, RoutedEventArgs e)
{
//ソリューション構成が、Debugの時のみ機能する。NewBuildでは機能しない。
Debug.WriteLine("test");
var a = 1 + 2;
//NewBuildで開発時のみの処理
#if DebugNewBuild
MessageBox.Show(a.ToString());
#endif
}
#if DebugNewBuild
で、開発時のみの処理を行う。