You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过CMake为Visual Studio的Debug和Release配置分别添加项目属性表?

问题描述

我有两个.props文件,分别对应Debug和Release配置。尝试了以下两种使用生成器表达式的方法,但均未生效——Visual Studio的属性管理器窗口中未显示添加的文件:

set_property(TARGET MyTarget PROPERTY VS_USER_PROPS
    $<$<CONFIG:Debug>:${PROJECT_SOURCE_DIR}/../Include/prop_sheet_Debug.props>
    $<$<CONFIG:Release>:${PROJECT_SOURCE_DIR}/../Include/prop_sheet_Release.props>
)

set_property(TARGET MyTarget PROPERTY VS_USER_PROPS "${PROJECT_SOURCE_DIR}/../Include/prop_sheet_$<CONFIG>.props")

直接指定Debug属性表的方法虽能生效,但会将prop_sheet_Debug.props文件同时添加到目标的Debug和Release配置中(在属性管理器窗口可见),不符合需求:

set_property(TARGET MyTarget PROPERTY VS_USER_PROPS "${PROJECT_SOURCE_DIR}/../Include/prop_sheet_Debug.props")

请问是否可通过CMake分别为Debug和Release配置添加对应的属性表?


解决方案

可以通过在set_property命令中指定CONFIGURATIONS参数,为不同配置单独设置VS_USER_PROPS属性,实现分别绑定对应配置的.props文件:

# 为Debug配置绑定对应的属性表
set_property(TARGET MyTarget 
             PROPERTY VS_USER_PROPS 
             "${PROJECT_SOURCE_DIR}/../Include/prop_sheet_Debug.props"
             CONFIGURATIONS Debug)

# 为Release配置绑定对应的属性表
set_property(TARGET MyTarget 
             PROPERTY VS_USER_PROPS 
             "${PROJECT_SOURCE_DIR}/../Include/prop_sheet_Release.props"
             CONFIGURATIONS Release)

CONFIGURATIONS参数会限定该属性仅应用于指定的构建配置,这样Visual Studio属性管理器中,Debug配置只会加载Debug对应的.props,Release配置只会加载Release对应的.props,不会出现交叉应用的问题。


内容的提问来源于stack exchange,提问作者Marsupito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 13:57:15