【问题标题】:How to force msbuild to ignore warning MSB8012如何强制 msbuild 忽略警告 MSB8012
【发布时间】:2017-05-10 08:32:34
【问题描述】:

我知道这个问题已经讨论了数百次,但我仍然找不到解决方案。也许 msbuild 中发生了一些变化,我不知道。问题是我收到以下警告

warning MSB8012: TargetPath(d:\src\output\Techd.dll) does not match the Linker's OutputFile 
property value (d:\src\output\Debug32\bin\Techd.dll). This may cause your project to build 
incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and
$(TargetExt) property values match the value specified in %(Link.OutputFile).

我按属性更改outdir

msbuild.wxw /p:OutDir="my_out_dir"

我不能更改项目属性,也不能修改 msbuild 目标文件 (Microsoft.CppBuild.targets)。所以不要有任何想法强迫 msbuild 忽略这个警告或忽略 $OutDir 变量的变化。

【问题讨论】:

  • 可能的答案:here

标签: msbuild


【解决方案1】:

您应该能够使用命令行参数使 MSBuild 警告静音:

msbuild.exe /nowarn:MSB8012

在即将发布的 MSBuild/VS2017 (15.3) 更新中,您可以将项目文件中用于控制 MSBuild 警告的属性指定为属性,这样它也会影响 VS 中的构建:

<MSBuildWarningsAsMessages>MSB8012</MSBuildWarningsAsMessages>

【讨论】:

  • 对于当前的 msbuild 版本 /nowarn 仅适用于编译警告,MSB8012 是 msbuild 警告。
  • 您使用的是哪个版本?当前(15/15.1)版本应该能够使用/nowarn作为命令行参数来抑制msbuild警告(不同于编译警告)
  • 是否可以安装最新版本的 MSBuild 并与 vs2015 一起使用?
  • 并非如此。是的,这些抑制选项是 vs2017/msbuild 15 的新选项
  • 这就是我迷路的原因。真不知道怎么处理这个问题
猜你喜欢
  • 2017-05-01
  • 1970-01-01
  • 2022-10-18
  • 2018-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-31
相关资源
最近更新 更多