比如说我有一个名为" MyConfig"的配置的Visual Studio项目。我已经定义了编译符号MY_CONFIG_SYMBOL
。
是否有宏或命令来查看是否在前/后构建事件中定义了MY_CONFIG_SYMBOL
?类似于#if MY_CONFIG_SYMBOL
,但是对于构建事件?
答案 0 :(得分:6)
我终于找到了答案。以下工作完美:
if "$(DefineConstants.Contains('DEBUG'))" == "True" <command>
这适用于构建中定义的任何常量,但请注意,常量区分大小写(&#39; DEBUG&#39;!=&#39; Debug&#39;)。
答案 1 :(得分:0)
如果你的意思是基于构建类型(Debug或Release)的条件构建,那么是。看看这些主题:
Conditional Post-build event in Visual Studio 2008
How to run Visual Studio post-build events for debug build only
答案 2 :(得分:0)
嗯,这不是一个解决方案,只是试图通过分享一些实验来推进国家。 (我还没有找到测试条件编译符号的方法。)
这是一种合并开关调试的方法:
<#@ include file="debug.incl" #>`
some text1
<# if ( xdebug ) { #>
foo = bas;
<# } #>
more text
debug.incl包含:
<#
bool xdebug = true;
#>
第一个文件中的条件(if)能够看到xdebug的值,因此输出会根据debug.incl中xdebug
的设置而改变。
(我确实尝试使用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" #>
与<# template debug=false #>
分别获得条件输出。