我現在用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