gpt4 book ai didi

msbuild - AfterTargets 失败不会导致 msbuild run 失败

转载 作者:行者123 更新时间:2023-12-02 21:22:38 25 4
gpt4 key购买 nike

在我的解决方案中,某些项目有需要在最后运行的任务,例如将文件复制到各个位置。我们通过 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 认为只要主要的“Build”目标通过了,一切也就通过了。

我们的解决方法 - 将目标更改为 BeforeTargets="AfterBuild" ,这将我的目标放入构建目标中。但是,这需要了解“Build”目标的内容,并且可能不适用于其他项目类型。

问题:

  1. 有办法获取 AfterTargets="Build"解决方案构建失败?
  2. 如果没有,有没有办法自动验证人们没有添加 AfterTargets="Build"进入他们的项目?

最佳答案

您是否尝试过在 任务后添加 以在 Source 和 Destination 的内容不相同时引发错误?

关于msbuild - AfterTargets 失败不会导致 msbuild run 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11756217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com