在我的解决方案中,某些项目需要在最后运行的任务,例如将文件复制到各个地方。我们使用AfterTargets="Build"
:
<Target Name="CopyStuff" AfterTargets="Build">
<Copy SourceFiles="..." DestinationFolder="..." />
</Target>
如果有效。但是,在构建解决方案(而不是单个项目!)时,如果复制失败,我们会收到红色构建警告,但msbuild(以及因此TFS构建)成功:
> msbuild /t:clean;build my.sln
(...)
(in red...) error MSB3021: Unable to copy file (...)
> echo %errorlevel%
0 <<<<<<< This means succeeded
根据我的理解,那是因为msbuild认为只要主修&#34; Build&#34;目标通过,一切都过去了。
我们的解决方法 - 将目标更改为BeforeTargets="AfterBuild"
,这会将我的目标置于Build目标中。但是,这需要了解&#34; Build&#34;目标,可能不适用于其他项目类型。
问题:
AfterTargets="Build"
失败使解决方案构建失败?AfterTargets="Build"
添加到他们的项目中?答案 0 :(得分:0)
您是否尝试过添加&lt;错误/&gt;在&lt; Copy /&gt;之后如果源和目标的内容不相同,则抛出错误的任务?