Установщик набора инструментов WPF для типа, определенного в другой сборке

Я пытаюсь создать установщик VSIX для элемента управления WPF.

Предположительно это просто, но «легкая» версия предполагает, что вы создаете элемент управления WPF в проект VSIX .

Дело в том, что мой UserControl находится глубоко в одной из моих DLL, и я не считаю, что его извлечение - лучший вариант. Я хотел бы оставить его там, но, похоже, я не могу этого сделать И добавить элемент управления в панель инструментов.

Один из вариантов - переместить код, который мне нужен для его установки, в панель инструментов, в панель управления сборка но это добавило бы зависимость к Microsoft.VisualStudio.Shell.Immutable.10.0.dll . Сборка используется как кем-то, у кого установлена ​​Visual Studio, так и удаленным сервером, работающим внутри службы, где VS не установлен, так что это недопустимо.

Другой вариант, который я пробовал, - это "обмануть" установщик набора инструментов VSIX путем применения RegistrationAttribute к прокси , которые будут регистрировать типы, определенные в другой сборке. Думал, что это сработает, но случилось странное.

all kinds of weirdness in the toolbox

Вместо двух элементов управления я получил несколько элементов управления Border (стандартная граница WPF) на вкладках со странными названиями, некоторые из которых повторяют некоторые из моих пространств имен.

Как я могу зарегистрировать WPF UserControl на панели инструментов, если элемент управления определен в сборке, отличной от VSIX?

6
задан H.B. 2 April 2011 в 13:31
поделиться