0

Я попытался создать пользовательскую систему проекта, пройдя через https://msdn.microsoft.com/en-us/library/vstudio/cc512961.aspx и преуспев. И теперь я хочу изменить свойства проекта этой созданной системы проекта. Вторая часть этой прогулки направляется на создание страниц свойств для свойств решения. (Solution Explorer-> Щелкните правой кнопкой мыши Solution и выберите Properties). Я не хочу изменять свойства решения, мне нужно настроить свойства проекта (Solution Explorer-> Right Click on Project и выбрать Properties), добавив новые вкладки и другие элементы для моя пользовательская система проекта. Пожалуйста, помогите мне как можно скорее ...Изменение свойств проекта пользовательской системы проекта в VisualStudio

ответ

1

Если ваша проектная система основана на MPF, пользовательские закладки могут быть интегрированы с помощью класса ProjectNode. Этот класс определяет методы GetConfigurationIndependentPropertyPages и GetConfigurationDependentPropertyPages; это виртуальные методы и могут быть реализованы любым производным типом, чтобы вернуть идентификаторы типа IPropertyPage.

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

Интерфейс IPropertyPage это разъем между системой проекта и пользовательским интерфейсом, позволяющим изменять свойства, в результате чего пользовательский интерфейс является ordenary окна (обычно Windows Forms Control). Исполнение страницы свойств должно быть отмечено с помощью атрибутов 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; 
    } 
} 
+0

Hi Matze, Очень спасибо за ваше обновление. Я сделал все вышеперечисленное, кроме последнего шага. Я не могу установить для параметра SupportsProjectDesigner значение true. В каком классе я должен использовать этот код. Пожалуйста, предоставьте мне решение. Заранее спасибо. –

+0

@MathivananKP Это виртуальное свойство, которое определяется классом «ProjectNode». Вы можете найти его здесь: https://mpfproj12.codeplex.com/SourceControl/latest#Dev12/Src/CSharp/ProjectNode.cs Итак, просто выведите свой проектный узел из этого типа - и код (как показано выше) должен работать ... Btw, пожалуйста, примите ответ, если решение работает для вас (-; – Matze

+0

Привет Маце. Его работа. Большое спасибо. :) –