2013-02-19 58 views
4

UPDATE:大廈WCF圖書館對CI機

正如我們終於得到了我們的許可固定和我們的生成代理安裝了Visual Studio 2012的更新。只要我們完成安裝,一切都完美地構建完成。

謝謝大家的所有答案和幫助。我接受的答案列出了這個選項作爲第四個嘗試,我們嘗試了其他一切,這就是所有這些都使它構建。

幫助,當我嘗試我的Windows服務器上建立一個WCF庫項目2008 R2構建機器我得到這個錯誤:

C:\BuildAgent\work\e8ce1d5b0f26c529\Configuration\ECUWeb\EcuWeb.ServiceLib\EcuWeb.ServiceLib.csproj(90, 3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. 

Project Configuration\ECUWeb\EcuWeb.ServiceLib\EcuWeb.ServiceLib.csproj failed.

構建代理已Visual Studio 2010和.net4.5安裝但是我在我的機器上使用VS2012。有沒有我可以安裝的SDK,或者我必須安裝VS2012?此外,這是一個團隊城市任務,只在解決方案文件上運行MSBuild。

+0

你檢查是否爲錯誤指定下列文件存在於您的生成代理?C:\ Program Files文件(x86)\ MSBuild \ Microsoft \ VisualStudio \ WCF \ Microsoft.VisualStudio.ServiceModel.targets – RinoTom 2013-02-20 12:48:55

+0

是的,我已經檢查並且WCF文件夾不存在。 – twreid 2013-02-20 13:44:18

+0

我在SO本身發現了一個類似的問題。 [CI服務器上的WCF編譯錯誤:未找到Microsoft.VisualStudio.ServiceModel.targets](http://stackoverflow.com/questions/14640045/wcf-compilation-error-on-ci-server-microsoft-visualstudio-servicemodel-targets )。但是這沒有回答。有一個建議安裝Windows SDK來解決這個問題。這似乎並不能解決問題。所以,我希望您可能需要自行安裝Visual Studio 2012,否則我們會等待有人提供更好的答案。 – RinoTom 2013-02-20 14:21:32

回答

4

當CI環境不具備「必需品」,那麼我已經找到了幾個解決方案:

一:安裝SDK(如前所述)。

二:每過一段時間,您都可以從裝有VS20xx的機器手動複製「.targets」文件。這實際上是一個很好的情況,因爲這是一個簡單的解決方案。

這裏舉例: Microsoft.WebApplication.targets was not found, on the build server. What's your solution?

三:一些 「類似」 到SDK安裝。一個額外的包在這裏或那裏。 下面是一個例子:

Build error in tfsbuild with database project

四:每隔一段時間,微軟螺絲你。唯一的辦法是安裝完整的Visual Studio。我討厭,因爲CI機器不應該需要Visual Studio。

+0

嗯,我已經嘗試了除了安裝VS2012之外的所有東西,所以這是我的下一站 – twreid 2013-02-20 19:44:54

+0

所以你試圖複製「C:\ Program Files文件(x86)\ MSBuild \ Microsoft \ VisualStudio \ WCF \ *。* 「從裝有VS的機器上安裝到構建機器上? – granadaCoder 2013-02-21 14:45:56

+0

是的,然後找不到System.ServiceModel.Core程序集。 – twreid 2013-02-21 14:49:05

3

有一件事要檢查 - 確定是否需要引用。

我有一個2012年的解決方案,其中有一個.csproj文件,它有一個對Microsoft.VisualStudio.ServiceModel.targets的引用。我從VS 2012升級到VS 2013.我有兩臺機器,我將其稱爲DESKTOP和LAPTOP。 DESKTOP上有VS 2012,我也安裝了VS 2013。因此,下面的文件存在,而我能夠編譯我的解決方案:

$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets 

筆記本電腦,我沒有VS 2012年我從頭開始安裝2013,並試圖讓我的解決方案(這是下TFS源代碼管理)工作。我得到了上述錯誤(VisualStudio.ServiceModel.targets不存在...驗證該聲明是正確的)。

事實證明,我甚至都不需要這個文件 - 在我的DESKTOP的.csproj文件中,我只是註釋掉了元素,並且解決方案成功重新編譯(包括單元測試通過)。所以,我檢查到TFS從臺式機,有筆記本電腦最新的代碼,它編譯(和單元測試通過)有太多:

<!-- Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets"/--> 
+0

甜,我會嘗試。謝謝。 – twreid 2014-01-09 17:24:16