4

這個可能有點奇怪。我在Visual Studio 2010中有三個C++項目的解決方案。兩個庫和一個可執行應用程序。兩種配置。在一種配置中,我需要可執行應用程序對一個庫具有項目依賴關係,而在其他配置中,我需要可執行應用程序對其他庫具有項目依賴關係。如何使Visual Studio 2010項目依賴項成爲特定於配置的?

具體而言,第一個庫中有一個Direct3D9實現,第二個庫中有一個OpenGL實現。第三個項目是爲兩者使用相同接口的測試工具,唯一的區別是它鏈接到哪個庫。測試工具項目中存在兩種配置,每種配置都有一種配置。我無法將測試工具項目設置爲基於活動配置分別依賴於每個實現庫。

如何使項目依賴項配置特定?

回答

3

是C++項目格式msbuild?如果是這樣,你應該能夠在參考文獻中加入條件。參考兩個項目,然後編輯項目文件並在每個項目上添加條件。這是它是如何在C#項目工作,不知道C++是一樣的:

<ProjectReference Include="..\DirectXLib\DirectXLib.csproj" Condition=" '$(Configuration)' == 'DirectX' "> 
    <Project>{99999-9999-9999-9999-99999999999}</Project> 
    <Name>DirectXLib</Name> 
</ProjectReference> 
<ProjectReference Include="..\OpenGLLib\OpenGLLib.csproj" Condition=" '$(Configuration)' == 'OpenGL' "> 
    <Project>{99999-9999-9999-9999-99999999999}</Project> 
    <Name>OpenGLLib</Name> 
</ProjectReference> 
+0

完美,我認爲這將需要一些非IDE項目的修改。我能夠通過IDE添加參考,然後手動編輯文件以使用必要的條件。謝了哥們。 – 2010-11-09 19:59:22

0

我認爲配置管理器的目的只是爲了你所問的,不是嗎?

在解決方案級別指定要構建的配置,並且對於每個配置,可以指定要構建的項目以及按何種順序。並且在每個項目的設置中,您可以指定要包含哪些庫以及一大堆你想要做的其他事情。

+0

問題是項目依賴項不能是特定於配置的,至少不能通過Visual Studio的IDE。 – 2010-11-09 20:00:05

0

一招,這似乎從IDE工作:

  • 讓這兩個庫也有一個配置不曾用過;

  • 在NOT_USED配置中將庫的配置類型(在Common Properties:General:Project Defaults中)設置爲Application(.exe)。

這將VS認爲他沒有一個lib作爲這些項目的結果,因此不提供鏈接錯誤。

相關問題