Я попытался создать пользовательскую систему проекта, пройдя через https://msdn.microsoft.com/en-us/library/vstudio/cc512961.aspx и преуспев. И теперь я хочу изменить свойства проекта этой созданной системы проекта. Вторая часть этой прогулки направляется на создание страниц свойств для свойств решения. (Solution Explorer-> Щелкните правой кнопкой мыши Solution и выберите Properties). Я не хочу изменять свойства решения, мне нужно настроить свойства проекта (Solution Explorer-> Right Click on Project и выбрать Properties), добавив новые вкладки и другие элементы для моя пользовательская система проекта. Пожалуйста, помогите мне как можно скорее ...Изменение свойств проекта пользовательской системы проекта в VisualStudio
ответ
Если ваша проектная система основана на 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;
}
}
Hi Matze, Очень спасибо за ваше обновление. Я сделал все вышеперечисленное, кроме последнего шага. Я не могу установить для параметра SupportsProjectDesigner значение true. В каком классе я должен использовать этот код. Пожалуйста, предоставьте мне решение. Заранее спасибо. –
@MathivananKP Это виртуальное свойство, которое определяется классом «ProjectNode». Вы можете найти его здесь: https://mpfproj12.codeplex.com/SourceControl/latest#Dev12/Src/CSharp/ProjectNode.cs Итак, просто выведите свой проектный узел из этого типа - и код (как показано выше) должен работать ... Btw, пожалуйста, примите ответ, если решение работает для вас (-; – Matze
Привет Маце. Его работа. Большое спасибо. :) –