Я пытаюсь создать установщик VSIX для элемента управления WPF.
Предположительно это просто, но «легкая» версия предполагает, что вы создаете элемент управления WPF в проект VSIX .
Дело в том, что мой UserControl находится глубоко в одной из моих DLL, и я не считаю, что его извлечение - лучший вариант. Я хотел бы оставить его там, но, похоже, я не могу этого сделать И добавить элемент управления в панель инструментов.
Один из вариантов - переместить код, который мне нужен для его установки, в панель инструментов, в панель управления сборка но это добавило бы зависимость к Microsoft.VisualStudio.Shell.Immutable.10.0.dll . Сборка используется как кем-то, у кого установлена Visual Studio, так и удаленным сервером, работающим внутри службы, где VS не установлен, так что это недопустимо.
Другой вариант, который я пробовал, - это "обмануть" установщик набора инструментов VSIX путем применения RegistrationAttribute к прокси , которые будут регистрировать типы, определенные в другой сборке. Думал, что это сработает, но случилось странное.
Вместо двух элементов управления я получил несколько элементов управления Border (стандартная граница WPF) на вкладках со странными названиями, некоторые из которых повторяют некоторые из моих пространств имен.
Как я могу зарегистрировать WPF UserControl на панели инструментов, если элемент управления определен в сборке, отличной от VSIX?