【发布时间】:2011-05-10 03:08:42
【问题描述】:
我在 GAC 中注册了一个 DLL。我可以在路径中看到 DLL:c:\windows\asssembly;我想这意味着 DLL 注册正确。
但是,如果我必须在我的应用程序中使用 DLL,我仍然需要单击“添加引用”并从上述路径添加。
那么,如果我还需要再次添加引用,GAC 有什么用?
【问题讨论】:
标签: .net gac global-assembly-cache
我在 GAC 中注册了一个 DLL。我可以在路径中看到 DLL:c:\windows\asssembly;我想这意味着 DLL 注册正确。
但是,如果我必须在我的应用程序中使用 DLL,我仍然需要单击“添加引用”并从上述路径添加。
那么,如果我还需要再次添加引用,GAC 有什么用?
【问题讨论】:
标签: .net gac global-assembly-cache
全局程序集缓存存储专门指定为由计算机上的多个应用程序共享的程序集。
换句话说,如果多个应用程序(当然是在同一台机器上)共享 DLL,您希望在 GAC 中注册您的 DLL。
不过,从你们的 cmets 中,我想再提几点:
您可能错误地注册了 DLL;一旦您的 DLL 在 GAC 中,您应该能够从所有 GACed DLL 所在的同一列表中添加它。你不应该按照路径去做。
您的 DLL 在 GAC 中这一事实并不意味着您的代码现在应该能够通过某种自动魔法来查看它;您仍然需要对它的引用(就像您需要对您所依赖的所有其他 .NET DLL 的引用一样,这些 DLL 也在 GAC 中)。
同样,GAC 的优势在于,如果您的 3 个应用程序需要 DLL,您只需部署一次(您将在 GAC 中部署它,而不是在每个应用程序的 @ 987654322@目录)。
希望这能让事情有所澄清。
【讨论】: