任何人都设法在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或Targeting Pack,或者将应用程序重新定位到已安装SDK或Targeting Pack的框架版本 . 请注意,程序集将从全局程序集缓存(GAC)中解析,并将用于代替引用程序集 . 因此,您的程序集可能无法正确定位到您想要的框架 .
4 回答
您不再需要安装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可用here . 安装程序与基本授权的代理配合良好 . 支持的操作系统:Windows 8,Windows Server 2012,Windows 7,Windows Server 2008 R2
附:我的回答更像是对Jeremy answer的评论,但我没有足够的声誉对答案发表评论 .
其他选择:无需安装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://stackoverflow.com/a/5344246/423356
如果构建服务器中未安装mvc3; "add deployable assemblies"到mvc项目http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx
如果在没有安装sdk或visual studio的情况下构建MSTest项目时出错;有几个博客文章关于这个,糟糕的解决方案对我来说太复杂了 . 我使用NUnit代替MSTest
此页面列出了每个Visual Studio版本的.NET SDK . http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx
如需较小的下载,请选择“开发人员包”或“定位包”,而不是完整的Windows SDK .