我正在尝试为一个WPF控件创建VSIX安装程序。这似乎很容易,但是“简单”版本假设您在VSIX项目中创建了WPF控件。
问题是,我的UserControl深嵌在一个DLL中,我认为将其拆分出来并不是最好的设计。我想让它留在那里,但我似乎无法这样做,并且使控件添加到工具箱。
其中一种选择是将我需要安装到工具箱的代码移动到控件的程序集中,但这将添加对Microsoft.VisualStudio.Shell.Immutable.10.0.dll的依赖项。该程序集既被安装了Visual Studio的用户使用,也被运行在服务内的远程服务器使用,而没有安装VS,所以这是不可行的。
我尝试的另一个选项是通过将RegistrationAttribute应用于代理来欺骗工具箱安装程序VSIX,这将注册在其他程序集中定义的类型。我认为它会起作用,但出现了奇怪的事情。
与其得到两个控件,我得到了一堆边框控件(标准WPF边框),它们在奇怪命名的选项卡中,其中一些回显了我的某些命名空间。
当控件的定义在VSIX之外的程序集中时,如何将WPF UserControl注册到工具箱?
问题是,我的UserControl深嵌在一个DLL中,我认为将其拆分出来并不是最好的设计。我想让它留在那里,但我似乎无法这样做,并且使控件添加到工具箱。
其中一种选择是将我需要安装到工具箱的代码移动到控件的程序集中,但这将添加对Microsoft.VisualStudio.Shell.Immutable.10.0.dll的依赖项。该程序集既被安装了Visual Studio的用户使用,也被运行在服务内的远程服务器使用,而没有安装VS,所以这是不可行的。
我尝试的另一个选项是通过将RegistrationAttribute应用于代理来欺骗工具箱安装程序VSIX,这将注册在其他程序集中定义的类型。我认为它会起作用,但出现了奇怪的事情。
与其得到两个控件,我得到了一堆边框控件(标准WPF边框),它们在奇怪命名的选项卡中,其中一些回显了我的某些命名空间。
当控件的定义在VSIX之外的程序集中时,如何将WPF UserControl注册到工具箱?