0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

新しいビルド構成を作成し、デバッグとリリースを切り替える

Posted at

ビルド構成を新規作成した時、デバッグに適した設定と、リリースに適した設定は異なります。
デバッグ用のビルド構成と、リリース用のビルド構成を、2つ作成する方法も考えられますが、ここでは1つのビルド構成での設定を解説します。

Visual Studio 2022

準備

NewBuildを新規作成

構成マネージャーで、NewBuildを新規作成

image.png

カスタム記号を追加。

プロジェクトのプロパティ ビルドで、
NewBuildカスタム記号に、DebugNewBuildを追加。

image.png

公開時の処理

DebugNewBuildを無効にする。
<DefineConstants>$(DefineConstants);DebugNewBuild</DefineConstants>

を、コメントアウトする。

Optimizeを有効にする

image.png

コードで、<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で、開発時のみの処理を行う。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?