.NET 4.0在CI服务器上生成问题

任何人都可以在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”没有find。 要解决此问题,请为此框架版本安装SDK或定位包,或者将您的应用程序redirect到您安装了SDK或定位包的框架版本。 请注意,程序集将从全局程序集caching(GAC)中parsing出来,并将用于代替引用程序集。 因此,您的程序集可能无法正确定位您想要的框架。

你不需要再安装VS了,现在你可以安装“Microsoft Windows SDK for Windows 7和.NET Framework 4”。

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b

SDK for .NET 4.5 在这里可用。 安装程序与基本授权代理运行良好。 支持的操作系统:Windows 8,Windows Server 2012,Windows 7,Windows Server 2008 R2

PS我的回答更像是对杰里米回答的评论,但是我没有足够的声望评论答案。

其他select:不安装Net 4.0 SDK或vs 2010

从开发机器复制引用程序集文件夹构build服务器(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服务器引用程序集警告MSB3644

如果你得到这个错误:“Microsoft.WebApplication.targets没有find” – 只需从开发机器复制目标https://stackoverflow.com/a/5344246/423356

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

如果在安装sdk或visual studio时没有构buildMSTest项目, 这里有好几篇博客文章,对我来说糟糕的解决scheme太复杂了。 我使用NUnit而不是MSTest

此页面列出了每个Visual Studio版本的.NET SDK。 http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx

对于较小的下载,请select“开发者包”或“定位包”,而不是完整的Windows SDK。