2013-04-17 125 views
2

環境:在Windows Server 2012 VM上運行的TFS 2012生成代理。 .Net 4.0/.Net 4.5安裝。 Windows SDK(http://msdn.microsoft.com/en-us/library/ms717422.aspx)也已安裝。TFS 2012 Microsoft.WebApplication.targets

問題:構建代理無法構建.NET 4.0的Web應用程序使用VS 2012

,因爲它無法解決網絡目標的構建失敗開發:

錯誤 中導入的項目「C:\ PROGRAM未找到文件(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications \ Microsoft.WebApplication.targets「。確認聲明中的路徑是正確的,並且該文件存在於磁盤上。

其後的警告如下: 找不到框架「.NETFramework,Version = v4.0」的引用程序集。要解決此問題,請爲此框架版本安裝SDK或Targeting Pack,或將您的應用程序重定向到您安裝了SDK或Targeting Pack的框架版本。請注意,程序集將從全局程序集緩存(GAC)中解析出來,並將用於代替引用程序集。因此,您的程序集可能無法正確定位您想要的框架。

我搜索了.NET 4.0靶向包在這裏:

http://msdn.microsoft.com/en-US/hh487283.aspx

但Windows Server 2012中沒有被列爲支持的平臺。

IT基礎架構團隊並不熱衷於在每個構建代理虛擬機上安裝VS以獲取定位包。

有沒有人有任何想法,我可以解決這個問題?

回答

5

免責聲明

我知道我下面提的是由很多開發OPS人所不齒的解決方案,但在我的經驗,這是迄今爲止最簡單,最可靠的方式來解決這個問題。

解決方案

到目前爲止對這一問題的最簡單方法是您的構建服務器上安裝Visual Studio 2012。我知道你說過基礎設施團隊並不熱衷於這樣做,但海事組織是最佳做法。我會試着概述下面的原因。

在您的構建服務器上安裝Visual Studio看起來像是一件奇怪的事情,但是一直圍繞着TFS塊,我發現它是管理構建服務器的最簡單方法。

您可以將文件(目標)從您的開發機器手動複製到您的構建服務器,但是如果Visual Studio的更新出來,您需要弄清楚發生了什麼變化,並確保您也更新了所有這些文件。這些文件通常包括目標文件和關聯的dll。

所有的擴展名,而現在是可用的軟件包

而且,它只是更容易加載您的生成服務器上Visual Studio和安裝不是試圖找出什麼是需要複製功能所需的軟件包。

這是非常清楚最近對我說,當微軟發佈ASP.Net and Web Tools 2012.2。這改變了網站和Web項目的發佈管道,我需要在我的TFS構建中使用它。只要能夠登錄到我的構建服務器,加載Visual Studio並下載新的更新,就變得非常容易。

我肯定會支持你的構建服務器上安裝Visual Studio。

+0

+1在發佈Service Pack時,Web應用程序和Web部署目標經常發生變化VS是管理這些依賴關係的最簡單方法。 –

+3

對於如何安裝VS2012減輕長期維護工作和防範可能的突發變化,您的意見使基礎架構團隊相信這是最好的發展方向。這些項目現在正在興建。 感謝您抽出寶貴時間撰寫此類詳細的回覆,並以我的具體案例爲例進行備份。 – Trev

0

您的網絡應用程序是用asp.net mvc編寫的嗎?在這種情況下,您可能需要在生成機器上安裝asp.net mvc。 我在完全清潔的機器上運行構建代理程序時遇到同樣的問題。安裝該程序包後,構建代理程序設法構建應用程序。

希望有所幫助。

+0

嗨安德烈。是的,網絡應用程序是一個MVC項目,但我沒有測試你的理論作爲discens的理由來證明VS 2012的安裝是有說服力的 謝謝你的輸入和爲提供一個替代解決方案。 – Trev

+0

@Trev,如果您已經安裝vs2012然後asp.net mvc的已安裝了太反正,所以沒有必要安裝別的東西確實如此。很高興你已經解決了你的問題。 –

0

這是可悲不得不以正確運行TFS 2012生成服務器上安裝Visual Studio 2012。 這意味着這些功能(「C:\ Program Files文件(x86)的\的MSBuild \微軟\ VisualStudio的\ 11.0 \ web應用\ Microsoft.WebApplication.targets ....)都錯過了在2012年TFS感謝 的包裝微軟修改軟件包;-)