我的构建服务器出现了一堆错误:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(847,9): 警告 MSB3644: 找不到框架“ .NETFramework,版本=v4.0”的参考程序集。请安装该框架版本的 SDK 或 Targeting Pack,或将您的应用程序重新定位到您已安装有 SDK 或 Targeting Pack 的框架版本。请注意,程序集将从全局程序集缓存 (GAC) 中解析,并将用于代替参考程序集。因此,您的程序集可能无法正确定位到您打算使用的框架。 [D:\adis\mercury\AdisFeeds\cache\Adis.Feeds.Cache.ConsoleManager\Adis.Feeds.Cache.ConsoleManager.csproj]
问题在于我已经安装了Windows SDK 7.1中的.NET部分... 我特别小心地勾选了旁边的.NET 4.0参考程序集。
有人有任何关于出错原因的建议吗?
记录一下,我正在使用Nant运行构建脚本(版本为0.86),以及用于msbuild nant任务的nant.contrib(0.85)。
更新 我刚刚在追查这个方向。我在我的开发机上使用msbuild进行编译,同时开启了诊断日志,然后在构建服务器上再次进行了编译。然后我比较了这些日志。
看起来重要的差异在于缺少\Program Files\References Assemblies路径的任何引用。具体来说,在FrameworkPathOverride中就是如此。
因此,我尝试将FrameworkPathOverride作为命令行参数添加到msbuild中。不幸的是,这只让我发现参考程序集目录似乎只有xml文件。也就是说,只有mscorlib.xml,没有mscorlib.dll
到底是怎么回事?!?