たとえば、 "MyConfig"という名前の構成を持つVisual Studioプロジェクトがあり、コンパイルシンボルMY_CONFIG_SYMBOL
が定義されています。VSビルドイベントで条件付きコンパイルシンボルを使用することはできますか?
MY_CONFIG_SYMBOL
がプリ/ポストビルドイベントで定義されているかどうかを確認するマクロまたはコマンドはありますか? #if MY_CONFIG_SYMBOL
のようなものですが、ビルドイベントのために?
たとえば、 "MyConfig"という名前の構成を持つVisual Studioプロジェクトがあり、コンパイルシンボルMY_CONFIG_SYMBOL
が定義されています。VSビルドイベントで条件付きコンパイルシンボルを使用することはできますか?
MY_CONFIG_SYMBOL
がプリ/ポストビルドイベントで定義されているかどうかを確認するマクロまたはコマンドはありますか? #if MY_CONFIG_SYMBOL
のようなものですが、ビルドイベントのために?
私はついに答えを見つけました。完全に、次の作品:
if "$(DefineConstants.Contains('DEBUG'))" == "True" <command>
これは、ビルドに定義された任意の定数のために動作しますが、定数は大文字と小文字が区別されることに注意してください(「DEBUG」=「デバッグ」!)。
ビルドタイプ(デバッグまたはリリース)に基づいて条件付きビルドを意味する場合は「はい」を意味します。これらのスレッドをチェックアウト:
Conditional Post-build event in Visual Studio 2008
How to run Visual Studio post-build events for debug build only
いいえ、私は、デバッグまたはリリースで定義された条件付きコンパイルシンボルを使用していることを意味します。デバッグ設定の場合、通常はデフォルトで定義されている条件付きコンパイルシンボルは 'DEBUG'です。これはコードで使用できますが、ビルド前またはビルド後のイベントで使用できます –
まあ、これは解決策ではない、単にいくつかの実験を共有することにより、状態を進めるしようとしています。 (私は、条件付きコンパイルシンボルをテストするための方法を見つけるしたことはありません。)
これを手段として、オンとオフのデバッグを切り替え統合する:debug.inclが含まれてい
<#@ include file="debug.incl" #>`
some text1
<# if (xdebug) { #>
foo = bas;
<# } #>
more text
:
<#
bool xdebug = true;
#>
最初のファイルの条件(if)はxdebugの値を見ることができるため、出力はdebug.inclのxdebug
の設定に基づいて変更されます。
しかし、悲しいことに、出力ファイルは、明白なインクルードにもかかわらず、debug.inclの変更で再構築されません。また、きれいな&リビルドは世代を引き起こすようには見えないので、別のビルド構成が必要です。
(私はdebug.inclの代わりにdebug.ttを使用しないようにしてください.inclに切り替えてください。 debug.csがdebug.ttによって作成されていないようにします。)
それが条件付きコンパイルシンボルが表示されませんので、実際にテンプレートのデバッグ属性に切り替えるんが、これは、非常にうまく動作しませんでした!
<#
#if DEBUG
bool xdebug = true;
#else
bool xdebug = false;
#endif
#>
some text1
<# if (xdebug) { #>
foo = bas;
<# } #>
more text
<#@ template debug="true" #>
対<# template debug=false #>
であなたは、それぞれ、条件付きの出力を得ますか。
答えが見つかりません。 – Thracx
@Thracx私はついに答えを見つけました。下記参照。 –