我正在使用MSBuild
运行一些管理脚本,因此这里没有涉及到编译器或链接器,并且我注意到构建系统在一个目标中成功运行后会跳过这个目标。
如何强制每次都运行一个目标?
示例:
<Project ToolsVersion="4.0" DefaultTargets="Foo" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Foo" >
<CallTarget Targets="Bar" />
<CallTarget Targets="Bar" />
</Target>
<Target Name="Bar" >
<Message Text="Bar" />
</Target>
</Project>
调用
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe msbuild.xml /v:d
结果在
Bar:
Bar
所以它没有被调用两次,/v:d表示第二次调用被跳过了,但是不清楚如何避免在不创建目标Bar1
和Bar2
的情况下实现对目标Bar
在Foo
中执行两次?
寻找这个问题的解决方案围绕着cl.exe、xcopy等工具来检测是否有更改,但这只适用于MSBuild
。