2012-02-11 54 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>>

相关问题