5

我已经在 GAC 中注册了一个 DLL。我可以在路径中看到 DLL: c:\windows\asssembly; 我想这意味着 DLL 注册正确。

但是,如果我必须在我的应用程序中使用 DLL,我仍然需要单击“添加引用”并从上述路径添加。

那么,如果我还需要再次添加引用,那么 GAC 有什么用呢?

4

1 回答 1

10

来自 MSDN

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

换句话说,如果多个应用程序(当然在同一台机器上)将共享 DLL,您希望在 GAC 中注册您的 DLL。

但是,根据您的评论,我想再提几点:

  1. 您可能错误地注册了 DLL;一旦您的 DLL 在 GAC 中,您应该能够从所有 GACed DLL 所在的同一列表中添加它。您不必按照路径进行操作。

  2. 您的 DLL 在 GAC 中这一事实并不意味着您的代码现在应该能够通过某种自动查看它;您仍然需要对它的引用(就像您需要对您所依赖的所有其他 .NET DLL 的引用一样,这些 DLL 也在 GAC 中)。

  3. 同样,GAC 的优势在于,如果您的 3 个应用程序需要 DLL,您只需部署一次(您将在 GAC 中部署它,而不是在每个应用程序的bin目录中部署 3 次)。

希望这已经澄清了一些事情。

于 2011-05-10T03:22:04.047 回答