2011-05-10 69 views
4

我已经在GAC中注册了一个DLL。我可以看到路径中的DLL:c:\windows\asssembly;我想这意味着DLL注册正确。全局程序集缓存(GAC)的用途是什么?

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

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

+0

这是一个非常严肃的问题......你为什么不喜欢用大写字母? – 2011-05-10 03:23:27

+0

@Brian Gideon:我把它清理了一下;我希望我保留OP的原意。 – 2011-06-07 04:25:06

回答

9

From MSDN

特别指定要由计算机上的多个应用程序共享的全局程序集缓存存储组件。

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

从你的意见,但是,我想提一些事情:

  1. 您可能没有正确注册的DLL;一旦您的DLL在GAC中,您应该可以从所有GACed DLL所在的列表中添加它。你不应该这样做。

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

  3. 再说一次,GAC的优势是,如果您的3个应用程序需要DLL,您只需部署一次(您将部署它为GAC,而不是每个应用程序的bin目录的3倍)。

希望这已经清除了一些东西。

+0

感谢解释它Araya。 – happysmile 2011-05-10 12:32:52

相关问题