2013-07-22 29 views
0

在我的工作場所,有一個特定的項目在編譯之前有幾個依賴關係。 我會說得更simpliar場景:MSBuild C++ - 製作一個用於製作自動化構建的XML腳本

比方說,我們有項目:A,B,C,d

關於A,B,編制這些項目的每一個時候,我們會得到一個lib文件(靜態庫)。 假設爲了編譯項目C,我們需要編譯項目A,B。 我們編譯項目C後,它作爲項目D的靜態庫。 然後我們編譯項目D來運行應用程序。

我們知道我們有專業的自動化工具,但是我的經理想用MSBuild一次編譯這些依賴關係。

這些項目是用C++編寫的,我在MSDN中發現的唯一參考是C#或VB。

我能做什麼?????????請幫助:)

+2

究竟如何使用正確配置的解決方案文件(的.sln) *不*提供你想要達到的目標?也許我錯過了一些明顯的東西(不會是第一次)。 – WhozCraig

+0

@WhozCraig說。或者只寫一個msbuild腳本,以正確的順序構建項目? – stijn

回答

1

假設VS2012,因爲我不能rememeber什麼2010支持:

您可以通過GUI設置瞭解決方案,並添加項目,然後設置爲通過右鍵點擊依賴的解決方案 - >選擇「Project Dependencies ...」並設置你的依賴關係。 MSBuild可以很好地構建sln文件。

或者(我們做什麼)手動編輯vcxproj文件,以通過項目組中的項目引用來指定它們的依賴關係。這意味着你不需要sln文件,只要構建任何項目,就會自動構建其引用項目。

<ProjectReference Include="PathTo.vcxproj"> 
    <Project>GuidOfProject</Project> 
    <Name>Name</Name> 
    <ReferenceOutputAssembly>false</ReferenceOutputAssembly> 
    <LinkLibraryDependencies>false</LinkLibraryDependencies> 
    <UseLibraryDependencyImports>false</UseLibraryDependencyImports> 
</ProjectReference> 
從你的描述

,你可能會想LinkLibraryDependencies設置爲true,但你要調查這些選項...