我现在用TeamCity试图获得两个构建配置为ASP.NET MVC 3解决方案工作。我的设置与http://www.troyhunt.com/2010/11/you-deploying-it-wrong-teamcity_26.html的指导非常相似。当它在第一个“Build &测试”构建配置中构建.sln时,一切都很好。但在“Package & Deploy”配置中,当我让MSBuild直接构建MyWebProject.csproj文件时,它似乎解决了.NET 3.5程序集的核心.NET引用,而不是.NET 4.0程序集。如何获得TeamCity与ASP.NET MVC 3 web项目的合作
因此,我遇到了各种.NET 3.5编译错误,比如“{get; set;}”属性,因为它们没有被标记为抽象。
另外,是什么让我认为这是捡V3.5组件,就是TeamCity的CoreCompile中 - CSC建设活动,它说
“[中信建投] C:\ PROGRAM 文件\的TeamCity \ buildAgent \工作\ 651adc4c97432014 \包\ DataAnnotationsExtensions.1.0.2.0 \ LIB \ NETFramework40 \ DataAnnotationsExtensions.dll 错误CS1705:大会 'DataAnnotationsExtensions,版本= 1.0.2.0, 文化=中性公钥= 358a5681c50fd84c' 使用 “系统。 ComponentModel.DataAnnotations,Version = 4.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'which has更高的 版本比引用的程序集 'System.ComponentModel.DataAnnotations,版本= 3.5.0.0, 文化=中性公钥= 31bf3856ad364e35' “
现在,如果我明确设置版本” 版本= 4.0。 0.0“在Web项目的.csproj文件,然后它开始给我在其他核心.NET程序集,如System.Core.dll类似的异常;即不断尝试解析对v3.5程序集的引用,而不是v4.0。有趣的是,我知道它使用MSBuild for v4.0,因为构建日志指出“使用用户定义的MSBuild:C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319”。我的命令行参数,开始传递到MSBuild的配置,如下:
/P:Configuration=%env.Configuration%
/P:DeployOnBuild=True
/P:DeployTarget=MSDeployPublish
/P:MsDeployServiceUrl=https://%env.TargetServer%/MsDeploy.axd
/P:AllowUntrustedCertificate=True
/P:MSDeployPublishMethod=WMSvc
/P:CreatePackageOnPublish=True
/P:UserName=MyUsername
/P:Password=MyPassword
我已经做了构建服务器上执行以下操作: *安装“的Microsoft Windows SDK的Windows 7和.NET Framework 4” *安装VS 2010(希望避免这种情况) *安装的ASP.NET MVC 3 *将evn.MSBuild集添加到%system.DotNetFramework4.0_x86_Path%。 *将注册表项HKLM/SOFTWARE/Microsoft/.NETFramework/SDKInstallRootv2.0添加为“C:\ Program Files \ Microsoft SDKs \ Windows \ v7.1”。
感谢您提供任何帮助!
比利·麦卡弗蒂
哪个版本的TeamCity? – 2012-04-20 15:43:54