0

我有一个 Visual Studio 2010 的插件供我们内部使用。该插件使用我们常用的 2 个库,但它们会不时更改。工作室启动后,它将库加载到其应用程序域中。

当您需要设计或构建依赖于这两个库的东西时,问题就来了。Visual Studio 中的 msbuild 或设计器引擎使用插件中的库,而不是由构建输出创建的库。

当您需要处理 2 个不同的版本/分支并且每个版本/分支都有自己的库版本时,最大的问题就开始了。

这会导致构建的错误/意外行为。也是构建结果

问题来了:是否可以在不同的应用程序域中加载插件或在插件中有某种版本控制?

感谢您阅读本文并感谢您的所有帮助

米罗

4

1 回答 1

0

我不知道您是否可以告诉 Visual Studio 在新的 AppDomain 上加载加载项,但您可以做的是从您的加载项创建一个新的 AppDomain,然后在新的 AppDomain 中执行加载项的核心工作. 这意味着您不应引用您在 VS 插件程序集中提到的 2 个库。相反,它们应该从仅在新 AppDomain 中加载的程序集中引用。

加载项的核心对象应派生自MarshalByRefObject,这将使 VS 加载项能够访问它。

于 2012-10-04T08:44:40.130 回答