属性页
用户可以使用属性页查看和更改项目配置依赖和独立于属性的属性。 属性页按钮在“属性”窗口中或解决方案资源管理器工具栏上为提供所选对象的属性页视图的对象启用。 属性页由环境创建,可用于解决方案和项目。 但是,它们也可以用于使用依赖于配置的属性的项目项。 当项目中的文件需要不同的编译器切换设置才能正确生成时,可以使用此功能。
使用属性页
如果已显示属性页并且所选内容更改(例如,从解决方案更改为项目),页面中显示的信息将更改以显示新选择的属性。 如果对象上没有支持属性页的属性,则属性页为空。
如果选择了多个对象,则属性页将显示所有选定项的属集。 如果所选项目不包含依赖于配置的属性,并且单击解决方案资源管理器工具栏上的“属性页”按钮,焦点将更改为属性窗口。 有关属性窗口和选择的详细信息,请参阅“扩展属性”。
如果为多个对象显示属性并更改属性页上的值,则对象的所有值都设置为新值,即使它们最初不同,并且显示单个对象的属性时页面为空。
Visual Studio 中提供了两种常规类型的 ProjectProperty Pages 对话框。 首先,对于 Visual Basic 项目,例如,属性页使用字段格式显示,如以下屏幕截图所示。 在第二个部分的后面部分显示,属性页承载的属性网格,类似于在“属性”窗口中找到的属性网格。
“项目属性页”对话框,其中包含字段格式和树结构
“属性页”对话框中的树结构不是使用 IVsHierarchy. 环境根据传递给 ISpecifyPropertyPages 它的级别名称以及 IVsPropertyPage 接口生成它。
Visual Studio 属性页上只有两个顶级类别:
公共属性,显示所选对象或对象的与配置无关的信息。 因此,选择其中一个通用属性子类别时,对话框顶部的“配置”、“平台”和“Configuration Manager”选项不可用。
配置属性,其中包含与解决方案或项目调试、优化和生成参数相关的配置相关信息。
不能创建任何其他顶级类别,但可以选择不在实现中显示一个或另一个类别
IVsPropertyPage
。 例如,如果没有要为对象显示任何与配置无关的属性,则可以选择不显示 Common Properties 类别。 如果在ISpecifyPropertyPages
配置对象IVsCfg
IVsProjectCfg
(实现对象、相关接口)中实现时,从项目的浏览对象和配置属性实现ISpecifyPropertyPages
,则显示通用属性。在顶级类别下显示的每个类别都表示单独的属性页。 对话框中提供的类别和子类别条目由实现
ISpecifyPropertyPages
确定。IVsPropertyPage
IDispatch
选定容器中要显示属性的项的对象实现ISpecifyPropertyPages
以枚举类 ID 列表。 类 ID 作为变量ISpecifyPropertyPages
传递给并用于实例化属性页。 类 ID 列表也传递给IVsPropertyPage
该对话框左侧的树结构。 然后,属性页会将信息传递回IDispatch
实现ISpecifyPropertyPages
并填充每个页面的信息的对象。使用所选容器中的每个对象检索
IDispatch
浏览对象的属性。在
Help::DisplayTopicFromF1Keyword
VSPackage 中实现可提供“帮助”按钮的功能。有关详细信息,请参阅
IDispatch
MSDN 库和ISpecifyPropertyPages
MSDN 库中。示例中显示的第二种类型的属性页承载属性网格的形式,如以下屏幕截图所示。
属性页对话框,其中包含属性网格
接口
IVSMDPropertyBrowser
和IVSMDPropertyGrid
(在 vsmanaged.h 中声明)用于在对话框或窗口中创建和填充属性网格。项目的体系结构与 Visual Studio 的以前版本发生了很大变化。 具体而言,项目处于活动状态的概念发生了变化。 在 Visual Studio 中,没有活动项目的概念。 在以前的开发环境中,活动项目是生成和部署命令的项目,无论上下文如何,都会默认使用。 现在,解决方案控制并仲裁哪些生成和部署命令适用于哪些项目。
以前处于活动状态的项目现在以三种不同的方式之一捕获:
启动项目
可以从解决方案的属性页指定项目或项目,当用户按 F5 或从“生成”菜单中选择“运行”时将启动该项目或项目。 这的工作方式类似于旧活动项目,因为它的名称以粗体字体解决方案资源管理器显示。
可以通过调用
DTE.Solution.SolutionBuild.StartupProjects
来检索启动项目作为自动化模型中的属性。 在 VSPackage 中,调用 get_StartupProject 或 get_StartupProject 方法。IVsSolutionBuildManager
在QueryService
SID_SVsSolutionBuildManager 上以服务的形式提供。 有关详细信息,请参阅 Project Configuration 对象 和 解决方案配置。活动解决方案生成配置
Visual Studio 具有一个活动的解决方案配置,可通过实现在自动化模型中使用
DTE.Solution.SolutionBuild.ActiveConfiguration
。 解决方案配置是一个集合,其中包含解决方案中每个项目的项目配置(每个项目可以在多个平台上具有多个配置,名称不同)。 有关解决方案的属性页的详细信息,请参阅 解决方案配置。当前选定的项目
GetCurrentSelection实现检索项目层次结构和项目项或选定项的方法。 在 DTE 中,你将使用
SelectedItems.SelectedItem.Project
和SelectedItems.SelectedItem.ProjectItem
方法。 核心 Visual Studio 文档中的标题下有示例代码。