我试图通过遍历https://msdn.microsoft.com/en-us/library/vstudio/cc512961.aspx创建自定义项目系统并成功完成。现在我想修改这个创建的项目系统的项目属性。本演练的第二部分是指导为解决方案属性创建属性页面。 (解决方案资源管理器 - >右键单击解决方案并选择属性)我不想修改解决方案属性,我需要通过添加新选项卡来自定义项目属性(解决方案资源管理器 - >右键单击项目并选择属性)和我的自定义项目系统的其他项目。请尽快帮助我......
答案 0 :(得分:1)
如果您的项目系统基于MPF
自定义标签页,则可以通过ProjectNode
课程进行整合。该类定义GetConfigurationIndependentPropertyPages
和GetConfigurationDependentPropertyPages
方法;这些是虚方法,可以通过任何派生类型实现,以返回IPropertyPage
实现的类型ID。
internal class CustomProjectNode : ProjectNode
{
protected override Guid[] GetConfigurationIndependentPropertyPages()
{
return new[]
{
typeof(MyCustomPropertyPage).Guid
};
}
}
IPropertyPage
接口是项目系统和UI之间的连接器,允许更改属性,其中UI是一个ordenary窗口(通常是Windows窗体Control
)。如果想要控制type-guid,则必须使用ComVisible
- 和ClassInterface
- 属性以及可选的Guid
- 属性标记属性页面实现。
[ComVisible(true)]
[Guid("...")]
[ClassInterface(ClassInterfaceType.AutoDual)]
internal class MyCustomPropertyPage : IPropertyPage
{
...
}
此外,必须通过包类上的ProvideObject
- 属性公开属性页类型。
[ProvideObject(typeof(MyCustomPropertyPage))]
class MyPackage : Package
{
}
最后,要使属性页显示为选项卡,必须将自定义项目节点的SupportsProjectDesigner
属性设置为true
。
internal class CustomProjectNode : ProjectNode
{
public CustomProjectNode()
{
this.SupportsProjectDesigner = true;
}
}