.NET 4.0构建服务器引用程序集警告MSB3644
我在构建服务器上遇到一堆错误:
C: WINDOWS Microsoft.NET Framework v4.0.30319 Microsoft.Common.targets(847,9):警告MSB3644:找不到框架“.NETFramework,Version = v4.0”的引用程序集。 要解决此问题,请为此框架版本安装SDK或Targeting Pack,或将您的应用程序重定向到您安装了SDK或Targeting Pack的框架版本。 请注意,程序集将从全局程序集缓存(GAC)中解析出来,并将用于代替引用程序集。 因此,您的程序集可能无法正确定位您想要的框架。 [d: ADIS 汞 AdisFeeds 缓存 Adis.Feeds.Cache.ConsoleManager Adis.Feeds.Cache.ConsoleManager.csproj]
问题是我已经安装了Windows SDK 7.1的.NET部分。 ...我特别小心地检查.net 4.0参考程序集旁边的框。
有没有人有什么错误的建议?
对于记录,我使用Nant为msbuild nant任务运行构建脚本(ver 0.86)和nant.contrib(0.85)。
更新我只是沿着这个角度而行。 我使用带有诊断日志记录的msbuild在我的开发机器上编译解决方案,然后再次在构建服务器上编译。 然后我比较了日志。
似乎有显着差异,缺少对 Program Files References Assemblies路径的任何引用。 特别是在FrameworkPathOverride中。
所以我尝试将FrameworkPathOverride作为命令行参数添加到msbuild。 不幸的是,这引起了我不幸的发现,即引用程序集目录似乎只有它们中的xml文件。 因为在那里只有mscorlib.xml。 没有mscorlib.dll
到底他妈发生了什么?!?
好吧,我找到了一个解决方案。 你需要做两件事:
就像是
msbuild -p:FrameworkPathOverride="C:Program FilesReference AssembliesMicrosoftFramework.NETFrameworkv4.0"
最后一个注意事项:这可能首先发生在我身上的原因是,我们的构建服务器是一个很好的旧的Windows Server 2003之一。 太旧的Windows SDK安装来应付?
这看起来像是这个问题的一个重复:在CI服务器上的.NET 4.0构建问题,无论如何应该按照规定的方式解决。
确保Windows 7 SDK安装(至少).NET开发“智能感知和参考程序集”和“工具”。 如果他们说他们已经安装,但引用程序集不存在于您的磁盘上,请卸载并重新安装。 我已经在我的构建服务器上确认了修复程序。
要添加到cixelsyd的答案:
Windows SDK v7.1安装程序的默认设置是“智能感知和引用程序集”是“半检查” - 将其更改为完全检查并且警告消失:-)
链接地址: http://www.djcxy.com/p/62031.html上一篇: .NET 4.0 build server reference assemblies warnings MSB3644