使用 MSBuild,一旦发生错误,项目的执行就会停止,除非 ContinueOnError=true

有没有办法在不引发错误的情况下停止项目的执行?

我想有这种可能性,因为我有一组现有的 msbuild 项目文件,在某些情况下,我需要停止处理项目而不引发错误,因为它是流程的正常退出点,而我没有希望使用脚本的人认为有问题。

我知道我可以设置一些属性并将所有剩余的任务置于此条件下,但我想避免这种情况。

最佳答案

正如您所解释的,您希望在特殊情况下停止构建而不引发错误,因为这是一个正常的退出点。为什么不创建一个什么都不做的目标,作为您的退出点。在您的特殊情况下,您将调用此目标。

<target Name="BuildProcess">
   <Message Text="Build starts"/>
   ...
   <CallTarget Targets="Exit"
               Condition="Special Condition"/>

   <CallTarget Targets="Continue"
               Condition="!(Special Condition)"/>
   ...
</target>

<target Name="Continue">
  <Message Text="Build continue"/>
</target>

<target Name="Exit">
  <!-- This target could be removed -->
  <!-- Only used for logging here -->
  <Message Text="Build ended because special condition occured"/>
</target>

关于msbuild - 如何在不引发错误的情况下停止 MSBuild 执行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2284389/

10-13 08:05