【问题标题】:How to ignore error and build successfully by using msbuild command?如何使用 msbuild 命令忽略错误并成功构建?
【发布时间】:2022-06-29 15:59:34
【问题描述】:

我已尝试使用这些命令通过 msbuild 命令忽略错误消息,但它不起作用。

msbuild /property:ContinueOnError=true E:...../xxx.sln

我收到类似的错误消息

GRGVTMWorkflowImp.cs(52,10):错误 CS0246:类型或命名空间名称 找不到“GrgCreateFunctionAttribute”(您是否缺少 使用指令还是程序集引用?) [E:\Fortify_Scan\src\AP1\VTM\20220607\20220601\GRGVTMBusinessService\GRGVTMWorkflow\GRGVTMWorkflow.csproj] GRGVTMWorkflowImp.cs(36,6):错误 CS0246:类型或命名空间名称 找不到“GrgComponent”(您是否缺少 using 指令 还是程序集参考?)

我知道这些错误消息的含义,但我仍然希望项目能够成功构建。

是否可以通过使用 msbuild 命令或任何其他方式来忽略这些错误消息?

【问题讨论】:

  • “ContinueOnError=ture”。在家时什么是“真”? ;-)
  • 抱歉,打错了,已修复

标签: c# .net visual-studio command-line msbuild


【解决方案1】:

根据Microsoft docs,我的印象是ContinueOnError 纯粹是MSBuild 任务的属性。虽然您确实是通过 MSBuild 进入构建过程,但有时会调用编译器 csc.exe
我没有找到任何关于编译器是否也支持这个属性的信息。但我对此表示怀疑,因为编译器应该如何处理明显损坏的项目(缺少依赖项)?我的假设和期望 - 很快就会失败。

【讨论】:

    【解决方案2】:

    参考MSBuild command line reference我们可以看到“-property:name=value”只是可以设置或覆盖指定的项目级属性,但ContinueOnError是任务的一个属性,所以改变它不起作用ContinueOnError 的值。

    如果要更改 ContinueOnError 的值,可以编写一个任务来定义 ContinueOnError=true 例如:

    <Task 
        Parameter1="Value1" ContinueOnError=" true ">
    </Task>
    

    或使用 Directory.Build.targets 到customize your build

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-06
      • 2015-12-16
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      相关资源
      最近更新 更多