5

アプリケーションのビルドに使用されたビルド構成をユーザーに知らせる文字列を表示したいと思います。例えば:

コマンド ラインが次のようになっている場合:

msbuild project.sln /t:Build /p:Configuration=Release

そして、ソースコードでは、これを行いたいと思います:

Console.Writeline("You are running the " + <get the /p:Configuration value> + " version" );

ユーザーには次のように表示されます。

リリース版を実行しています

この記事この記事で定義されているように、コマンド プロンプトで条件付きコンパイル シンボル (#defines) を宣言できることはわかっています。しかし、私は という既存の変数を使用したいと考えていますConfiguration

4

1 に答える 1

4

あなたが言った= #ifを使用する以外は、これを行う方法はありません。MSBuild 構成名は、プロジェクトの特定のフレーバーをビルドするためのプロジェクト ファイル内の一連の構成の名前です。デフォルトでは、コードからこの構成名にアクセスすることはできません。

コード内の文字列を変更する方法は 2 つあります。

a)あなたが言ったように-条件付きコンパイルシンボルを指定できるので、次のようなことができます

#if DEBUG
const string Flavor = "Debug";
#else
const string Flavor = "Release";
#endif
...
Console.WriteLine("You are running the " + Flavor + " version" );

b) プロジェクト ファイルで遊んで、構成に応じてさまざまなファイル セットを含めることができます。プロジェクトをアンロードし、csproj を単なるファイルとして開くと、たとえば次のように表示されます。

<ItemGroup>
  <Compile Include="MyApp.cs" />
</ItemGroup>

次のように変更できます。

<ItemGroup>
  <Compile Include="MyApp.Release.cs" Condition="'$(Configuration)'=='Release'" />
  <Compile Include="MyApp.Debug.cs" Condition="'$(Configuration)'=='Debug'" />
</ItemGroup>

したがって、これは、構成ごとに異なるファイルのセットを含める方法であり、ユーザーが現在持っている構成を指定できます。

于 2013-04-03T06:09:55.530 に答える