全局程序集缓存(GAC)的目的是什么?

5
我已经在全局程序集缓存 (GAC) 中注册了一个 DLL。我可以在路径 c:\windows\assembly 中看到该 DLL;我认为这意味着 DLL 已经成功注册。
然而,如果我需要在我的应用程序中使用该 DLL,我仍然需要单击“添加引用”,并从上述路径添加。
那么,如果我仍然需要再次添加引用,全局程序集缓存的作用是什么?
1个回答

10

来自 MSDN 的内容:

全局程序集缓存用于存储专门为多个计算机应用程序共享的程序集。

换句话说,如果多个应用程序(当然是在同一台计算机上)将共享 DLL,则需要在 GAC 中注册该 DLL。

根据您的评论,我想提出几点说明:

  1. 您可能没有正确注册 DLL;一旦您的 DLL 存在于 GAC 中,您应该能够从与所有 GAC DLL 列表相同的列表中添加它。您不应该通过路径进行操作。

  2. 您的 DLL 存在于 GAC 中并不意味着您的代码现在可以自动看到它;您仍然需要引用它(就像引用其他也存在于 GAC 中的 .NET DLL 一样)。

  3. 再次强调,GAC 的优势在于,如果您的 3 个应用程序都需要使用该 DLL,则您只需部署一次(而不是将其部署到每个应用程序的 bin 目录中三次)。

希望这能让事情更加清楚明白。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接