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