比较Visual Studio中的配置?

时间:2009-09-23 12:21:47

标签: visual-studio configuration

实际上我遇到了一个问题,我经常更喜欢进入:

请考虑以下事项: 您刚刚制作了一个新的解决方案/项目,并开始创建/添加您需要的所有内容。当你这样做时,你总是在调试配置中继续前进。您对配置进行了更改(在C ++项目中,特别是编译器,链接器设置),并且在一天结束时,您只想交换到发布模式以进行最终构建,会发生什么?您有大量关于缺少定义,链接库,预处理器定义,预编译头等的错误消息。)

现在?打开“项目属性”,在树形视图中选择每个项目,然后使用左上角“配置”的组合框切换和返回。

由于这两个配置都保存在一个文件中,您不能使用简单的Diff-Tool,或者必须将项目文件中的两个部分复制并粘贴到两个不同的文件中,比较它们并合并一切都回到项目文件中。

是否有更好的解决方案来比较一个项目中的不同配置?

4 个答案:

答案 0 :(得分:3)

对于现在的价值,这里是我如何处理更改一个配置而忘记更改另一个配置的问题。但是,我使用的这个过程确实有两个注意事项:1)它适用于VS2010及以上版本;并且,2)我已经学会完全避免这个问题。

首先,我从不对项目的属性页面进行更改!他们倾向于使用最初导致此问题的构建条件。相反,我总是在“解决方案资源管理器”旁边打开我的“物业经理”。

其次,我在一个名为common.properties的子文件夹中有几个“预定义”属性表,例如:

  • my_macros.props - 特定于我的解决方案(读取:框架)目录结构的常见宏定义。例如,我有一个名为MY_COMMON_OUTPUT_DIRECTORY的定义,它等于$(SolutionDir)bin \ $(Configuration)\ $(ProjectName)。

  • my_dox_settings.props - 特定于doxygen项目的设置。是的,我使用doxygen创建了一个单独的项目来创建我的文档。

  • my_test_settings.props - 特定于我的单元测试框架的设置。同样,单独测试的单独项目。添加运行已编译可执行文件的生成后事件。

  • my_app_settings.props - 我的应用程序框架的默认设置。例如,它将“输出目录”设置为前面提到的MY_COMMON_OUTPUT_DIRECTORY。

  • my_app_settings_use_pch.props - 对使用预编译标头的应用程序框架的其他更改。它只是添加了一个/ DI_WANT_MY_PCH编译器开关。

  • include_boost_files.props - 将boost-libraries添加到我的项目的设置。

  • include_ogre_files.props - 将ogre-libraries添加到我的项目的设置。
  • include_sdl_file.props - 将sdl-libraries添加到我的项目中的设置。

  • 你应该明白这个想法......

接下来,我创建一个新的空白属性表并添加它。我通常称之为$(ProjectName).props [注意:一定要自己扩展宏],然后通过属性管理器添加它作为最后一项。

现在,当我需要对项目进行更改时,我只需转到属性管理器并更改相应的属性表。请记住,这样做会影响使用该属性表的所有项目。如果您只想影响当前项目,请修改$(ProjectName)属性表。除非你构建条件(我不会进入),否则一个更改会影响许多配置(和项目)。

我甚至将common.properties目录检查为source-control。

我希望这有帮助,

答案 1 :(得分:2)

我不确定他们何时介绍它,但至少在VS2015中,您可以选择"多个配置......"在“属性页”屏幕上的配置下拉列表中。然后,您可以选择"所有选项"从各个部分,看看哪些参数不同(那些参数不同)。没有向您显示实际值 - 您仍然需要来回切换 - 但至少您可以快速发现差异。

答案 2 :(得分:1)

我没有在项目文件中进行比较的完美解决方案......但是对于它的价值,您可能会发现将当前项目文件与源代码管理中的副本进行比较会很有帮助。然后,您在一个部分中看到更改的值,您可以快速查看该值是否也在另一部分中更改。

但是你的问题指定了一个新项目...所以我认为它还没有在源代码管理中。

所以这是另一个选项:将项目文件复制到另一个名称,然后比较两个副本。是的,它们将是相同的......但是如果你使用Beyond Compare 2之类的好工具允许你手动对齐部分,那么你可以右键单击左侧窗口中调试部分的第一行并选择Align手动然后右键单击右侧窗口中发布部分的第一行,然后选择“手动对齐”。瞧...有你的改变。 :)

答案 3 :(得分:1)

有一个名为BeyondCompare3的程序非常便宜。我很少赞同产品,但它应该在这里为你做好准备。使用“比较选择到剪贴板”选项。