有没有办法从 MSBuild 运行中删除特定警告?

Posted

技术标签:

【中文标题】有没有办法从 MSBuild 运行中删除特定警告?【英文标题】:Is there someway to remove specific warning from an MSBuild run? 【发布时间】:2014-08-11 11:15:26 【问题描述】:

我在这样的 BTDF MSBuild 运行中收到警告...

EXEC : warning : If any of the assemblies were previously loaded by a Host Instance, 
  it may be necessary to restart the Host Instance for changes to take effect. 
  [C:\Program Files (x86)\Test\1.0\Deployment\Deployment.btdfproj]

...但这些是“错误”警告,只会混淆事物。

有没有办法在 BTDF / MSBuild 运行中禁用这些和其他警告?

我已经阅读过,似乎将IgnoreStandardErrorWarningFormat 设置为true,并为CustomWarningRegularExpressionCustomErrorRegularExpression 使用合适的正则表达式可能是解决此问题的方法,但我不知道该怎么做

任何指针?

【问题讨论】:

【参考方案1】:

可以将 /warn:0 参数传递给 BTDF,但这会抑制所有可能不希望出现的警告。

您所说的警告是无害的(就像 BizTalk 在部署期间生成的许多其他警告一样)。您最好让您的用户了解警告的含义以及何时可以安全地忽略它们。

如果您确实必须禁止这些警告,请修改 .targets 文件 - 搜索与 BTSTask.exe 相关的 Exec 语句(只需搜索字符串 BTSTask.exe)。将您上面提到的属性添加到它,然后重建您的 msi/项目。您必须构建一个正则表达式来抑制这个警告 - 因为您不想抑制必须采取行动的实际警告。

【讨论】:

以上是关于有没有办法从 MSBuild 运行中删除特定警告?的主要内容,如果未能解决你的问题,请参考以下文章

MSBuild 的路径

是否可以从 csproj 文件中知道是使用 devenv 还是 msbuild 来运行它?

使用 XCTest 运行测试时有没有办法发出警告?

有没有办法从输入类型中删除箭头,但将其范围仅限于特定组件?

有没有办法让 gcc 禁用特定警告

在rake测试中排除gem警告而不从自己的代码中删除警告