如何忽略postbuild事件的警告和错误?

时间:2017-11-09 14:09:51

标签: c# .net msbuild csproj

我的csproj中有一个postbuild事件。我想忽略此命令的输出,但每当我执行命令> nul 2>& 1时,此csproj会损坏,可能是因为“>”。当我写“>”时我注意到了从postbuild窗口而不是直接编辑csproj如果被编码..是否有解决方法(除了从bat文件运行它)

2 个答案:

答案 0 :(得分:4)

这可以使用来自自定义目标的MSBuild <Exec>任务来完成,而不是依赖于默认的前/后构建脚本属性。

您可以将其添加到csproj文件中,而不是使用默认的pre / post构建脚本:

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
  <Exec Command="some command" IgnoreExitCode="true" />
</Target>

请注意,对于“基于sdk”的项目(ASP.NET Core,.NET Core,.NET Standard),上述格式是在Visual Studio UI中指定后期构建事件时添加的内容,但IgnoreExitCode属性。

答案 1 :(得分:0)

我使用另一种方法:重置批处理中的errorlevel变量。当VS检查%errorlevel%时,只需将其设置为零即可忽略一条语句,例如

MD "$(SolutionDir)..\Binaries" 1>NUL 2>NUL
SET ERRORLEVEL=0

如果该文件夹已经存在,则MD设置错误级别1。我将该值覆盖为0,Visual Studio感到满意。注意:所有其他错误也将被忽略,因为如果手动分配了变量,错误级别将不再分配(在大多数情况下还可以)。

也有可能忽略这样的错误

MD "$(SolutionDir)..\Binaries" 1>NUL 2>NUL
SET ERRORLEVEL=

(删除错误级别),它不会抑制进一步的错误,但是具有的副作用是,我们要忽略的错误显示在Visual Studio的错误列表中,而不是导致错误的错误列表。稍后会在代码中出现。