c# プリプロセッサ ディレクティブ その2

前の記事で c# プリプロセッサ ディレクティブ  というのを書いたんですが、全ソースに一つづつ書かねばならず面倒すぎる。

一括で制御できる方法ないかと探してたらマイクロソフトのページにコンパイルオプションの話がありました。


ただ、これ、うちの環境だと動かない(苦笑)
まだまだよくわかってないので私が間違ってるだけかもしれません。
さらにいろいろ探してるとcsprojファイルで設定できるっぽいので下記な感じで設定してみました。

◯◯.csproj 
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<DefineConstants>$(ASPNETCORE_ENVIRONMENT)</DefineConstants>
</PropertyGroup>

DefineConstantsはコンパイル定義を設定するようで、Visualstudioなんかだとビルド設定、条件付きコンパイルあたりで設定する項目のようです。

$(ASPNETCORE_ENVIRONMENT)にしたのは実行時にappsettings.jsonを変えるのにASPNETCORE_ENVIRONMENTを使っているので一石二鳥かなあと。

ASPNETCORE_ENVIRONMENT=Development dotnet run 

上記を実行すると appsettings.Development.jsonが選択され、
#if Development が動く

のどかわーくす