2012-02-11 56 views
11

我的解決方案中有兩個項目。我目前使用的默認配置模式是「調試」。當我想執行「發佈」構建時,我切換到發佈模式,然後我看到我之前的所有項目屬性都設置爲默認值,這意味着我必須手動再次將所有屬性添加到此模式。Visual studio 2010 - 在不同的構建配置之間保留項目屬性?

有沒有解決這個VS2010中,例如複製所有的屬性,如包含路徑,預處理宏,宏建,等從「調試」到「釋放」模式的便捷方式?

回答

11

配置設置存儲在.vcproj/.vcxproj文件。您可以在一些文本編輯器中打開它並手動複製一些設置,但這樣做不方便。現在,您可以打開項目屬性並複製這些設置,同時在該窗口的左上角切換Debug/Release配置。

,當你設置,旨在爲所有配置相同的屬性接下來的時間,選擇配置:All Configurations以避免麻煩。

0

您也可以使用配置管理器重新創建您想要的新模式,然後您可以選擇想要複製所有設置的配置。

5

屬性表可以輕鬆解決這個問題和其他一些與財產有關的問題。

總之,在一個項目的所有屬性都只是一個XML文檔中的節點,並且屬性組節點可以有一個condition屬性。它們很容易在任何文本編輯器中更改,但鮮爲人知的功能是能夠導入其他XML文檔,這些文檔可以提供設置(除少數項目特定的文檔外)。

This blog post對使用​​項目表一個很好的教程,並在this question一些更多的信息。您可以在Visual Studio中創建它們,對它們進行編輯(包括複製現有的項目設置),然後使用屬性管理器(而不是屬性窗口)將它們附加到項目中。

在你的屬性表組中使用相同的語法規則的設置,可以爲所有的配置設置或過濾僅適用於某些應用。他們也可以通過項目名稱和其他一些東西,使用VS的變量和條件系統進行過濾。比如,我用:

<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> 
    <ClCompile> 
    <WarningLevel>Level4</WarningLevel> 
    <TreatWarningAsError>true</TreatWarningAsError> 
    <Optimization>Disabled</Optimization> 
    <EnablePREfast>true</EnablePREfast> 
    <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> 
    </ClCompile> 
</ItemDefinitionGroup> 

對我的一些版本,相同的設置應用於所有項目(full file here)。

一個最方便的用途是給在文件中生成目錄,讓所有的項目建立統一到同一個目錄(請確保使用項目名稱爲輸出)。

1

管理幾乎所有跨多個不同的屬性建立(調試,釋放,Win32中,64位等)可與設置的單個集合通過使用宏來完成。

因此,在編輯項目設置之前,請確保已將配置設置爲All Configurations,並將平臺設置爲All Platforms。現在幾乎所有的設置都可以通過所有不同的配置以這種方式完成。比方說,你需要不同的配置和平臺來使用不同版本的各種庫。假設你正在使用的命名約定是在所有項目中保持一致,你就可以使用:

附加庫目錄:..\..\foo\bar\lib\$(Platform)_$(Configuration)

你可以看到宏將擴展到,通過點擊編輯按鈕,然後點擊按鈕Macros>>

相關問題