在 Visual Studio 中修改自定义项目系统的项目属性

Modifying project properties of custom project system in VisualStudio

我尝试通过 https://msdn.microsoft.com/en-us/library/vstudio/cc512961.aspx 遍历创建自定义项目系统并成功了。现在我想修改这个创建的项目系统的项目属性。本演练的第二部分是指导为解决方案属性创建 属性 页面。 (Solution Explorer-> Right Click on Solution and select Properties) 我不想修改解决方案属性,我需要自定义项目属性 (Solution Explorer-> Right Click on Project and select Properties)通过为我的自定义项目系统添加新选项卡和其他项目。请尽快帮助我...

如果您的项目系统是基于MPF自定义标签页,可以通过ProjectNodeclass集成。这个 class 定义了 GetConfigurationIndependentPropertyPagesGetConfigurationDependentPropertyPages 方法;这些是虚拟方法,可以由任何派生类型实现 return IPropertyPage 实现的类型 ID。

internal class CustomProjectNode : ProjectNode
{
    protected override Guid[] GetConfigurationIndependentPropertyPages()
    {
        return new[] 
        {
            typeof(MyCustomPropertyPage).Guid
        };
    }
}

IPropertyPage 接口是项目系统和 UI 之间的连接器,允许更改属性,其中 UI 是普通的 window(通常是 Windows 表格 Control)。 属性 页面实现必须标有 ComVisible- 和 ClassInterface- 属性,并且可选地标有 Guid- 属性,如果想要控制类型-向导。

[ComVisible(true)]
[Guid("...")]
[ClassInterface(ClassInterfaceType.AutoDual)]
internal class MyCustomPropertyPage : IPropertyPage
{
    ...
}

此外,属性 页面类型必须通过包 class.

上的 ProvideObject 属性公开
[ProvideObject(typeof(MyCustomPropertyPage))]
class MyPackage : Package
{
}

最后,要使 属性 页面显示为选项卡,必须将自定义项目节点的 SupportsProjectDesigner 属性 设置为 true

internal class CustomProjectNode : ProjectNode
{
    public CustomProjectNode() 
    {
        this.SupportsProjectDesigner = true;
    }
}