2015-09-18 40 views
0

我有一箇舊的MVC2項目,我嘗試從舊的巡航控制CI服務器移動到我們當前的TeamCity CI服務器。在團隊城市生成服務器上編譯ASP.NET MVC2

我得到的形式生成錯誤的找平:

型號\國\ ControllerStates.cs(3,18):錯誤CS0234:類型或 命名空間名稱的mvc'不存在在命名空間「System.Web程序」(是 缺少程序集引用?)

我得到了很多形式的警告:

[14時57分16秒]雷索lveAssemblyReference [14:57:16] C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(1360, 9):警告MSB3257:主參考 「System.Runtime.Serialization」無法解析,因爲它有一個 高於當前目標框架中存在的「4.0.0.0」版本。 在當前目標框架中找到的版本是「3.0.0.0」。

的TeamCity的構建步驟是使用Visual Studio(的.sln)亞軍vs2012 這裏是由球隊的城市記錄csc命令的一部分。

/reference:C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Configuration.dll et al。

我發現了一個VS2012安裝它正常工作,而類似的參數如下:

/reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Configuration.dll等。人。

所以它使用了一些程序集的錯誤版本,我不知道爲什麼。

+1

您的構建步驟是如何建立的?也可以嘗試在本地使用與您的TeamCity安裝程序在構建步驟中使用的相同版本的msbuild進行構建,這至少可以幫助您在本地複製構建錯誤並測試修補程序,而無需轉至TeamCity服務器。 – Nanhydrin

+0

@Nhydhydrin我已經將構建步驟信息添加到問題中,現在嘗試您的下一個建議。 :-) – Myster

+1

看起來TeamCity非常看重它應該使用的任何版本的.NET(假設3.5),而4.0。如果進入TeamCity,編輯構建配置並查看運行編譯的構建步驟,則有兩個相關的字段,「MSBuild版本」和「MSBuild ToolsVersion」。他們設定了什麼?我的懷疑是你的ToolsVersion設置爲4.0,但應該是3.5或2.0。 – Nanhydrin

回答

0

我不知道什麼是錯,但我已經建立了一個新的生成代理,並且工作正常,所以我不認爲TC或我的項目是責怪,而是有點可疑的設置上的構建代理。

這不是一個很好的答案,但是如果您有類似的問題,您可能想切入追逐並重新構建或添加新的構建代理。