2009-09-17 36 views
0

我想部署某种框架,因此需要在GAC中注册一些程序集。是否可以将某个程序集作为某种“链接程序集”安装到GAC中?

有趣的部分是: 这些GAC组件只能由框架开发人员使用,客户端应用程序不应该使用这些GAC组件,但在他们的本地目录(那些在GAC组件可能是一个不同的版本,最可能更高)。

我已经找到并尝试了app.config设置,但它似乎被客户端应用程序忽略(最新.NET运行时安装为3.5)。

+0

只是为了阐明:你的框架将引用'AssemblyA.dll'的2.0.0.0版本(例如),它将在GAC中,而你的客户端将引用框架和一个不同的版本(比如说1.0)。 0.0)的'AssemblyA.dll'? – 2009-09-17 16:20:07

+0

我不明白 - 你是说开发人员应该在GAC中构建组件,但客户端应用程序应该在本地目录中运行组件? – Justin 2009-09-17 16:24:36

+0

我不明白为什么需要在GAC中进行任何操作。为什么框架开发人员将他们正在开发的东西放入GAC?也许我不了解你的问题......? – 2009-09-17 16:26:39

回答

0

因为你将加载两个不同版本的给定的DLL在内存中,你需要隔离它们。常用的方法是;

  1. 创建一个AppDomain。你创建两个DLL。第一个DLL从你的代码创建一个新的AppDomain,然后加载第二个链接到这些依赖关系的DLL。
  2. 使用服务进程。你创建一个DLL和一个服务应用程序。 dll在新进程中启动服务应用程序,并使用例如远程处理。服务应用程序链接到您需要绑定到的组件。
相关问题