我有一個在VS 2008中構建良好的項目,然後我們安裝並開始使用TFS Build,然後我們升級到TFS 2010 。一切都很好,並且構建正確(在我實現了新的構建過程之後,通過從任何遠程Visual Studio 2010客戶端啓動一次單擊構建即可使所有內容都變得非常好)。 Visual Studio不需要安裝在生成代理上。我很努力(非常難難)不要在Build Agent上安裝Visual Studio,因爲我的理解是沒有必要,我們沒有許可將它安裝在非開發機器上。如何使用TFS Build(VS 2010)創建VS2010 MakeFile項目(vcxproj)
現在我試着升級到VS 2010的解決方案,仍然針對.NET 3.5,因爲它是一個針對SQL Server CLR過程的程序集,而SQL Server目前還不支持.NET 4.0。但是我根本無法在TFS Build下繼續構建它。我似乎無法從TFS Build和MS Build命令行獲得一致的錯誤消息,但我認爲它與Microsoft.Cpp.Targets不在C:\ Program Files \ MSBuild \中有關,因爲我避難沒有安裝Visual Studio。我確實安裝了Microsoft Windows SDK 7.1,這樣我就可以爲其他.NET 4.0項目運行svcutil等.NET 4.0 SDK工具,但似乎沒有安裝此構建所需的東西。錯誤TFS構建帶給我的是:
C:\ TFSBld [...] \ GenerateLanguage \ GenerateLanguage.vcxproj(46,3): 錯誤MSB4019:導入項目 「C:\ Microsoft.Cpp .Default.props「未找到 。確認 聲明中的路徑是正確的, 並且該文件存在於磁盤上。
當我點擊這個錯誤就帶我到這條線在vcxproj文件:
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
我真正需要在這個項目做的是運行RESGEN產生從RESX文件資源文件,並將它們編譯成衛星組件。我正在使用makefile編譯來執行此操作,手動運行resgen(我認爲這是因爲我找不到將sattelite程序集編譯爲獨立解決方案的方法),然後將它們編譯爲DLL(I不記得現在如何工作,但我認爲這是手動運行AL.exe從資源文件編譯DLL文件)。所以基本上我只需要運行命令行來構建這個項目,而我似乎無法找到一個合理的方式來完成這個任務,而不會拋出整個項目並編輯TFS構建腳本來運行一堆硬編碼的命令行代替。有一個更好的方法。
我一直在這一整天,並試圖寫我自己的.targets文件和.xml屬性表來代替標準文件,但它是我的頭。我試圖簡單地刪除這些行,但是MSBuild抱怨沒有「構建」目標。我試圖給vcxproj文件添加一個虛擬文件,但是它似乎沒有運行完成所有工作前的構建前和構建後步驟。
看起來這個問題已經在這裏得到解答:http://stackoverflow.com/questions/3043294/how-to-build-a-vs2010-c-project-on-a-buildserver什麼是正確的方式來更新/刪除這個問題? – BlueMonkMN 2011-01-20 14:20:26