例如,我有一个 Visual Studio 项目,其配置名为“MyConfig”,并且MY_CONFIG_SYMBOL
定义了编译符号。
是否有宏或命令来查看是否MY_CONFIG_SYMBOL
在构建前/构建后事件中定义?类似的东西#if MY_CONFIG_SYMBOL
,但对于构建事件?
例如,我有一个 Visual Studio 项目,其配置名为“MyConfig”,并且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 的值,因此输出会根据xdebug
debug.incl 中的设置进行更改。
然而,遗憾的是,输出文件并没有根据 debug.incl 的更改重建,尽管它明显包含在内。甚至清理和重建似乎也不会触发生成,因此需要一些单独的构建结构......
(我确实尝试过 debug.tt 而不是 debug.incl 无济于事,切换到 .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" #>
vs.<# template debug=false #>
您分别获得或不获得条件输出。