.NET 4.0在CI服务器上构建问题

98

有人设法在CI服务器上编译.NET 4.0应用程序而不需要在CI服务器上安装Visual Studio 2010吗?

.NET 4.0没有SDK。已在CI服务器上安装了.NET 4.0。对于简单的项目,msbuild.exe可以工作并提供以下警告:

(GetReferenceAssemblyPaths target) -> C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(847,9): 警告 MSB3644: 未找到框架“.NETFramework,Version = v4.0”的参考程序集。为解决此问题,请安装此框架版本的SDK或定位包,或将应用程序重新定向到具有已安装SDK或定位包的框架版本。请注意,程序集将从全局程序集缓存(GAC)中解析,并将用于替代参考程序集。因此,您的程序集可能无法正确地针对您打算使用的框架。


1
如何将此警告转换为致命错误?它隐藏在我们的构建日志中,而不是直接失败并显示有关 mscorlib.dll 的一些神秘消息。 - Colonel Panic
4个回答

128

45
默认安装大小为1.7 GB,但其中大部分文件都是不必要的。如果你除了.NET开发>智能感知和参考程序集之外都不选,那么你仍然可以得到所需的.NET 4定位包(约为450 MB)。 - user87453
1
您可能还想查看.NET开发>工具,因为这将带来几个实用程序,例如sn.exe,对于处理已签名的程序集非常方便。 - Mykro
8
还有一个网络安装程序,所以您只需要下载所需的部分。可以在这里下载:http://www.microsoft.com/download/en/confirmation.aspx?id=8279 - Rasmus
2
虽然这个软件名为“适用于Windows 7”,但有一点值得注意的是,它支持的操作系统有:Windows 7、Windows Server 2003 R2标准版(32位x86)、Windows Server 2003 R2标准版x64、Windows Server 2008、Windows Server 2008 R2、Windows Vista和Windows XP Service Pack 3。 - Aligma
2
那个答案帮了我。我安装sdk 7.1时遇到了不同的问题,但在这里得到了解决方案:http://www.mathworks.com/matlabcentral/answers/95039 - ari
显示剩余3条评论

22

可用于.NET 4.5的SDK 在这里。安装程序与基本授权代理兼容。支持的操作系统:Windows 8、Windows Server 2012、Windows 7和Windows Server 2008 R2。

附言:我的回答更像是对Jeremy回答的评论,但我没有足够的声望来评论答案。


1
从引用页面中可以看到:“Windows SDK不再附带完整的命令行构建环境。现在需要单独安装编译器和构建环境。”因此,我认为这已经不足以运行构建服务器。 - Chris
1
这对我有用。您只需要选择选项“.NET Framework 4.5软件开发工具包”,它只需要62.3 MB,在安装在Windows Server 2012 R2上的TFS Build 2013服务器上为SharePoint应用程序部署正常工作。无需覆盖FrameworkPathOverride参数。 - Koen Zomers

10

另一种选择:在不安装Net 4.0 SDK或vs 2010的情况下:

从开发机器复制引用程序集文件夹到构建服务器(190MB)。

使用msbuild -p:FrameworkPathOverride选项指向参考程序集文件夹。

参考程序集位置:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0 或 C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0

从这里找到了这些信息:

.NET 4.0 build server reference assemblies warnings MSB3644

如果出现错误:"Microsoft.WebApplication.targets was not found" - 只需从开发机器上复制该目标文件 https://dev59.com/KG865IYBdhLWcg3wHKxe#5344246

如果在构建服务器上没有安装mvc3; "添加可部署程序集"到mvc项目 http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

如果在没有安装sdk或visual studio的情况下构建MSTest项目时出现错误;有几篇博客文章讨论了这个问题,但解决方案对我来说太复杂了。 我使用NUnit代替MSTest。


自从我的 2012 服务器因为安装程序显示有更高版本而无法安装 .Net 4 后,我按照 @kite 的建议从一台已经安装了 VS 2012 的 PC 上复制了一份。这解决了我的问题。 - chdev77

-1

安装开发包或目标包可以是一个通用的提示,但特定于.NET Framework 4.0(此问题涉及到)并没有这样的包,Windows SDK是不可避免的。 - Lex Li

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接