我的情况如下:
我有一个带有工具窗口的 Visual Studio 10 vspackage 项目。此工具窗口有一个 UI,可让您创建配置 xml 文件(想象一下工具窗口在一侧,而标准 VS xml 编辑器在另一侧)。xml 文件实际上是一个类的序列化输出(想象一个 ISomething 列表),它包含的类型由 UI 使用反射发现。UI 还允许用户在将输出序列化到 xml 之前编辑每个实例的属性(通过 propertygrid)。
一切都很好,但我计划让工具箱在当前运行的 VS 项目中发现插件。这意味着每次构建项目时,UI 都应该加载项目的输出并查找新插件/更新现有插件。如果我在没有卸载以前构建的程序集的情况下执行此操作,我将在几次构建后最终陷入混乱。
我花了一天的大部分时间寻找解决方案,并且遇到了很多事情,但并不是我想要的。
我认为最容易实现的解决方案(从我这边)是能够在不同的 appDomain 上托管 UI(WPF 控件),每次构建项目时都会将其拆除,但此时我愿意你们中的任何人可能提供的任何解决方案/建议。
在此先感谢,约翰