在MSBuild PreBuildEvent/PostBuildEvent事件期间,属性引用(例如$(TargetPath)和!(TargetPath))之间有什么区别?我发现它们在某些情况下的工作方式有所不同,但是在“!(”表单上找不到任何文档。
http://msdn.microsoft.com/en-us/library/bb383819.aspx
这是我似乎能找到的最接近的。
例子:
<Target Name="BeforeBuild">
<CreateProperty Value="NewValue">
<Output TaskParameter="Value" PropertyName="TargetPath" />
</CreateProperty>
</Target>
<PropertyGroup>
<PreBuildEvent>
echo $(TargetPath)
echo !(TargetPath)
</PreBuildEvent>
</PropertyGroup>
将回显原始的TargetPath,然后回显“NewValue”。但是,这对于我定义的其他属性不起作用。
任何帮助,不胜感激!
最佳答案
刚刚重写了我们的构建过程,我可以诚实地说我从未使用过!引用任何东西,我用过的所有字符都是 bool 运算符中的“NOT”。
实际上,我无法在文档的任何地方找到这种用法,也无法重现您所描述的行为。
我强烈怀疑这不是引用任何内容的有效/受支持的语法。
关于c# - MSBuild属性引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9561514/