给出如下的PreProcessor定义:
<PreprocessorDefinitions>%(PreprocessorDefinitions);ENABLE_DEBUGGING=1;</PreProcessorDefinitions>
在MSBuild构建后事件期间是否可以确定ENABLE_DEBUGGING的值?
答案 0 :(得分:0)
这可能是多种方法之一;仅当ClCompile ItemGroup包含项目时,换句话说,当有要编译的文件时,以及它们对于PreprocessorDefinitions都具有相同的值时,它才会起作用;它将ENABLE_DEBUGGING=
字符串后面的数字存储在DebugVal属性中。:
<Target Name="CheckValue" BeforeTargets="BuildGenerateSources">
<PropertyGroup>
<PreProc>%(ClCompile.PreprocessorDefinitions)</PreProc>
<DebugVal>$([System.Text.RegularExpressions.Regex]::Match( $(PreProc), 'ENABLE_DEBUGGING=(\d)' ).Groups[ 1 ].Value )</DebugVal>
</PropertyGroup>
<Message Text="ENABLE_DEBUGGING = $(DebugVal)" />
</Target>
的灵感