たとえば、「MyConfig」という構成のVisual Studioプロジェクトがあり、コンパイルシンボルがMY_CONFIG_SYMBOL
定義されているとします。
MY_CONFIG_SYMBOL
ビルド前/ビルド後のイベントで定義されているかどうかを確認するためのマクロまたはコマンドはありますか?のようなもの#if MY_CONFIG_SYMBOL
ですが、ビルドイベント用ですか?
たとえば、「MyConfig」という構成のVisual Studioプロジェクトがあり、コンパイルシンボルがMY_CONFIG_SYMBOL
定義されているとします。
MY_CONFIG_SYMBOL
ビルド前/ビルド後のイベントで定義されているかどうかを確認するためのマクロまたはコマンドはありますか?のようなもの#if MY_CONFIG_SYMBOL
ですが、ビルドイベント用ですか?
私はついに答えを見つけました。以下は完全に機能します。
if "$(DefineConstants.Contains('DEBUG'))" == "True" <command>
これは、ビルドで定義されたすべての定数で機能しますが、定数では大文字と小文字が区別されることに注意してください('DEBUG'!='Debug')。
ビルドタイプ(デバッグまたはリリース)に基づく条件付きビルドを意味する場合は、はい。これらのスレッドをチェックしてください:
まあ、これは解決策ではなく、いくつかの実験を共有することによって状態を前進させようとしているだけです。(条件付きコンパイルシンボルをテストする方法はまだ見つかりません。)
これは、デバッグのオンとオフの切り替えを統合する方法です。
<#@ include file="debug.incl" #>`
some text1
<# if ( xdebug ) { #>
foo = bas;
<# } #>
more text
debug.inclに含まれる場所:
<#
bool xdebug = true;
#>
最初のファイルの条件付き(if)はxdebugの値を確認できるため、debug.inclの設定に基づいて出力が変更されxdebug
ます。
ただし、残念ながら、debug.inclが明らかに含まれているにもかかわらず、debug.inclを変更しても出力ファイルは再構築されません。そして、クリーン&リビルドでさえ生成をトリガーしないように見えるので、そのためにいくつかの別個のビルド構造が必要です...
(debug.inclの代わりにdebug.ttを試してみましたが、使用できませんでした。debug.csがdebug.ttによって作成されないように、.inclに切り替えてください。)
これは、条件付きコンパイルシンボルが表示されないため、うまく機能しませんでしたが、実際にはテンプレートのデバッグ属性がオンになります。
<#
#if DEBUG
bool xdebug = true;
#else
bool xdebug = false;
#endif
#>
some text1
<# if ( xdebug ) { #>
foo = bas;
<# } #>
more text
<#@ template debug="true" #>
対を使用すると<# template debug=false #>
、それぞれ条件付き出力を取得するかどうかを決定します。