我的解决方案中有两个项目。我目前正在使用默认配置模式'Debug'。当我想进行'Release'构建时,我切换到Release-mode然后我看到我以前的所有项目属性都设置为default,这意味着我必须再次手动将所有属性添加到此模式。
有没有一种方便的方法可以在VS2010中解决这个问题,例如将所有属性(如包含路径,预处理器宏,构建宏等)从“调试”复制到“释放”模式?
答案 0 :(得分:12)
配置设置存储在.vcproj
/ .vcxproj
文件中。你可以在一些文本编辑器中打开它并手动复制一些设置,但这不方便。现在,您只需打开项目属性并复制这些设置,同时在该窗口的左上角切换Debug
/ Release
配置。
下次当您为所有配置设置相同的属性时,请选择配置:All Configurations
以避免麻烦。
答案 1 :(得分:5)
物业表可以轻松解决此问题和其他一些与物业相关的问题。
简而言之,项目中的所有属性都只是XML文档中的节点,属性组节点可以具有condition
属性。它们很容易在任何文本编辑器中更改,但一个鲜为人知的功能是能够导入其他XML文档,这些文档可以提供设置(除了一些项目特定的文档之外的所有文档)。
This blog post有一个关于使用项目表的好教程,以及this question中的更多信息。您可以在Visual Studio中创建它们,编辑它们(包括复制现有项目设置),然后使用属性 manager (而不是属性窗口)将它们附加到项目中。
属性表中的组使用与常规设置相同的语法,可以为所有配置设置或过滤以仅应用于某些配置。它们也可以使用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)。
最方便的用途之一是在文件中提供构建目录,因此所有项目都统一构建到同一目录中(确保使用项目名称作为输出)。
答案 2 :(得分:1)
使用宏可以通过一组设置来管理多个不同版本(调试版,发布版,win32版,x64版等)中的几乎所有属性。
因此,在编辑项目设置之前,请确保您已将配置设置为All Configurations
,并将平台设置为All Platforms
。现在,几乎所有设置都可以通过所有不同的配置以这种方式完成。比如,您希望不同的配置和平台使用不同版本的各种库。假设您使用的命名约定在所有项目中都是一致的,那么您可以使用:
其他图书馆目录:..\..\foo\bar\lib\$(Platform)_$(Configuration)
您可以点击编辑按钮,然后点击Macros>>
按钮,查看哪些宏会展开。
答案 3 :(得分:0)
您还可以使用配置管理器重新创建所需的新模式,然后您可以选择要复制所有设置的配置。