在没有安装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?),但这没有效果。
答案 0 :(得分:3)
NoWarn
适用于Csc
和Vbc
任务引发的编译警告。
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
,它可能会对这些警告起到一些作用。