2010-06-15 105 views
7

我有一個使用VS2010創建的託管C++構件定向.NET 3.5的.NET解決方案。命令:如何在構建服務器上構建VS2010 C++項目

%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MyProject.sln 

在我的開發機器上編譯解決方案。

在我BuildServer我得到這個錯誤:

Build FAILED.

"F:\CruiseControl.NET\Projects\MyProject\MyProject.sln" (default target) (1) -> "F:\CruiseControl.NET\Projects\MyProject\MyProject\MyProject.csproj" (default target) (2) -> "F:\CruiseControl.NET\Projects\MyProject\MyProjectMAPIHelper\MyProjectMAPIHelper.vcxproj" (default target) (3) ->
F:\CruiseControl.NET\Projects\MyProject\MyProjectMAPIHelper\MyProjectMAPIHelper.vcxproj(23,3): error MSB4019: The imported project "C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

0 Warning(s) 
1 Error(s) 

在我的dev的機器所要求的文件

"C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props"

存在。在我的構建服務器上沒有。

當我嘗試複製這些文件(以及所有其他文件在同一目錄中)時發生其他錯誤。所以這是錯誤的。

編輯:其他錯誤意味着:當我在構建服務器上覆制文件「Microsoft.Cpp.Default.props」時,MSBuild聲明其他文件。這表明我只是做一個缺失文件的副本不是構建環境所期待的。我正在尋找MSI /我可以在我的構建服務器上安裝的任何軟件包,並且任何C++項目都將構建。安裝SDK沒有竅門。或者我在SDK安裝過程中做了錯誤的事情。或者僅使用SDK編譯託管C++ VS2010解決方案是不可能的。

我相信「其他錯誤」與我的問題無關。我的問題是:「我如何正確設置我的編譯環境」。 /EDIT

我做了什麼至今:

是否有如何正確配置我的項目我的開發機器上編譯我的生成服務器上VS2010 任何提示和技巧?還有什麼要安裝的(VS2010除外)?

謝謝,亞瑟

+0

問題:你是否被鎖定到CC.Net,或者你是否有能力升級到其他東西? – Caladain 2010-06-25 22:06:52

+2

我不認爲改用另一種持續集成技術會改變任何事情。正如Arthur所說,構建失敗使用普通的MSBuild。這似乎是.Net 4.0與SDK 7.0A更緊密相關的問題,它應該是。 – 2010-06-26 09:50:32

+0

是的,那是真的。使用MSBuild在命令行上編譯失敗。 CC.NET尚未涉及。 – Arthur 2010-06-26 11:49:27

回答

4

現在,安裝VS 2010是你唯一安全的選擇。 Windows SDK將更新以啓用您的方案,但我沒有特定的發佈日期。在此之前,您需要使用C++工具安裝VS 2010,以便使用C++項目構建您的2010解決方案。確保通過他們的team blog和/或MSDN Forum讓C++團隊瞭解對這種情況的不滿情緒。

即使在安裝VS 2010之後,您可能需要調用相應的vcvars * .bat文件來正確設置您的環境變量。

+0

可悲的消息。如果安裝SDK不起作用,我將不得不在我的構建機器上安裝VS 2010。傷心,但顯然是真的。 – Arthur 2010-06-26 11:54:37

+1

經過很多痛苦之後,我發現7.1 SDK安裝必要的安裝程序*如果您在安裝過程中選擇了正確的選項,並且不要試圖超越自己:)。看到簡短的答案http://stackoverflow.com/questions/4742325/how-to-build-a-vs2010-makefile-project-vcxproj-with-tfs-build-no-vs-2010/4768328#4768328 – BlueMonkMN 2011-01-22 14:20:54

+0

如何這個答案可以接受嗎?構建服務器的目的不是必須安裝Visual Studio ... @BlueMonkMN:您是/正在運行Windows 7還是服務器版本的計算機? – Brandon 2014-01-16 18:32:07

1

爲什麼你不想在你的構建服務器上安裝VS2010?如果它是許可的話,那麼每個開發人員的頭部都有許可證,而不是每次安裝,所以我相當肯定你可以不購買另一個副本 - 或者,在最壞的情況下,你可以安裝應該至少安裝配置位的快速版本缺少,所以你可以使用平臺SDK編譯器。

如果你仍然有msbuild的問題,你可以使用devenv.com /build,它完全複製VS構建環境。

+2

安裝VS2010將是我最後的選擇。 – Arthur 2010-06-21 12:13:20

+0

@Rup在構建服務器上安裝VS是一個糟糕的主意。這與構建服務器的目的完全相反 - 提供一個乾淨的,類似客戶的環境(現有的DLL等)。如果您認爲在構建服務器上安裝VS沒有問題,那麼您還需要建議在每個客戶機箱上安裝VS。 – mafu 2013-01-24 09:50:40

+0

@mafutrct我明白你來自哪裏,但沒有理由必須在構建服務器上託管和測試應用程序!當我寫到我們的環境是一個用於單元測試和一些集成測試的構建服務器,但是自動部署到另一個服務器(沒有VS)以進行真正的測試時。 – Rup 2013-01-24 10:33:13

相關問題