是否有 Visual Studio 项目配置宏定义 DEBUG 或 RELEASE 而不管项目配置名称?

Is there a Visual Studio Project Configuration Macro which defines DEBUG or RELEASE regardless of the Project Configuration Name?

我看到使用名为 $(Configuration) 的 Visual Studio 宏作为构建文件路径是一件很常见的事情。

例如,如果您在 Visual Studio 2013 中创建一个新的 Visual C++ 项目,您的默认 属性 Sheet 将如下所示:

$(Configuration)宏是当前项目配置的名称。如果您不重命名您的配置或创建新配置,您将能够在需要设置 DebugRelease 的任何地方添加 $(Configuration)。这样,您可以为 所有配置 设置配置 属性,而不是转到每个 Release 或 Debug 配置并单独设置它。

但是如果您决定重命名您的配置怎么办?并且您希望将它们内置到相同的 ReleaseDebug 目录中,而不是为每个配置创建一个新文件夹?即使配置以其他方式命名,仍然有办法获取宏或定义一个 DebugRelease 的宏吗?

属性 sheets 允许您制作 'User Defined Macros',它转换为您可以在项目文件中使用的配置变量。你会:

  1. 创建两个property sheets
  2. 在每个中,创建一个用户定义的宏(命名为 ConfigurationType - 创建时不要使用 $()),在一个 属性 sheet,你可以在一个中将它的值设置为 Debug,在另一个中设置为 Release
  3. 将适当的 属性 sheet 附加到 属性 管理器(VS 菜单中的视图->属性 管理器)中的每个配置。
  4. 在您的项目属性中使用 $(ConfigurationType)(或任何您命名宏的名称),但您认为合适 - 例如。而不是你的 ($Configuration) 宏。
如果您有大量共享公共属性的配置,

属性 sheet 是管理设置的更简单的方法。我经常使用所描述的方法,例如链接第三方库,它们通常只有 DebugRelease 构建,而我的项目有很多配置。

注:

但是,将此用于中间目录输出时要小心 - 如果您有两个配置使用同一个配置,那么您可能 运行 会遇到问题。