如何摆脱msbuild警告MSB3644

时间:2012-04-04 06:33:29

标签: .net .net-4.0 msbuild msbuild-4.0

在没有安装SDK的计算机上构建Web项目时,会收到以下警告:

  

警告MSB3644:框架的参考程序集   找不到“.NETFramework,Version = v4.0”。要解决此问题,请安装   此框架版本的SDK或Targeting Pack或重新定位您的   应用程序到您拥有SDK的框架版本   或安装了Targeting Pack。请注意,程序集将被解析   来自全球大会缓存(GAC)并将用于代替   参考组件。因此您的装配可能不正确   针对您想要的框架。

显然,摆脱警告的一种方法是安装SDK。但是,在这种情况下,我只是想从构建输出中抑制此警告(这几乎是无害的),而不以任何其他方式更改机器的状态。

我尝试将/ p:NoWarn = 3644传递给msbuild(基于其他帖子,如how can i suppress all compiler and code analysis warnings from msbuild at the command line?),但这没有效果。

1 个答案:

答案 0 :(得分:3)

NoWarn适用于CscVbc任务引发的编译警告。

MSB *警告是核心MSBuild警告。 要禁止MSB3644警告,请传递显式TargetFrameworkMoniker

msbuild your.csproj /t:Rebuild /p:TargetFrameworkMoniker=".NETFramework,Version=v4.0"

可以找到可能的输入列表here

v1.1.4322
v2.0.50727
Client
v4.0
v4.0.30319
.NET Framework, Version=v4.0, Profile=Client
.NET Framework, Version=v4.0
.NET Framework, Version=v4.0.1, Profile=Client
.NET Framework, Version=v4.0.1
.NET Framework, Version=v4.0.2, Profile=Client
.NET Framework, Version=v4.0.2
.NET Framework, Version=v4.0.3, Profile=Client
.NET Framework, Version=v4.0.3
.NET Framework, Version=v4.5

在MSBuild 4.5中有一个新标志 - IgnoreVersionForFrameworkReferences,它可能会对这些警告起到一些作用。