在 GAC 注册的消费程序集

Posted

技术标签:

【中文标题】在 GAC 注册的消费程序集【英文标题】:Consuming assembly registered with GAC 【发布时间】:2019-03-19 05:16:20 【问题描述】:

我成功安装了我通过 Visual Studio.net 创建的 .dll,因为它显示“程序集已成功添加到缓存”。 (我使用 create-file 选项生成强命名类型——按照说明书,但我不知道这一切是如何组合在一起的——然后我做了gacutil -i xxxx.dll,并且 dll 在 @ 下有一堆类987654322@命名空间)。

当我做项目时如何使用这个程序集 --> 添加引用?

项目中的所有类都被赋予了IQbooks.Shapes命名空间,但我在项目中的任何地方都没有看到——>添加引用。

我原以为 IQBooks.Shapes 会显示在“程序集”选项卡的“名称”列下,但我在每个选项卡上都进行了搜索,但找不到。

我错过了一步吗?还是我脑子里完全搞砸了这个概念……?

我正在使用 Visual Studio 2015,我正在使用 c#。

【问题讨论】:

【参考方案1】:

您可能走错了学习道路。不用担心 GAC 和使用 VS 2015,而是使用 Visual Studio 2017,并使用 NuGet 包管理依赖项。

要回答您的问题,您需要将 .DLL 引用设置为您的 DLL 的某个副本。 GAC 在程序集加载时出现,提供库的单一系统范围副本,并为您提供更新库并影响所有应用程序的单一位置。

您很少会在任何新开发中使用 GAC。

【讨论】:

如果它被添加到 GAC 为什么你看不到它存在的任何线索?我知道您可以添加参考 dll,但是如果您要走 GAC 路线,您应该可以在 GAC 中复制.... Visual Studio 根本没有实现可以直接从 GAC 添加对程序集的引用的功能。在处理直接安装到 GAC 中的第三方程序集时,这确实很不方便。

以上是关于在 GAC 注册的消费程序集的主要内容,如果未能解决你的问题,请参考以下文章

将 DLL 安装到全局程序集缓存(GAC)

如何从 GAC 中提取程序集?

确定是不是正在使用 GAC 和 NGen 的程序集

[转]程序集之GAC---Global Assembly Cache

C#:在 GAC 中查找 PresentationCore.dll(和其他程序集)的路径

GAC - 要将程序集添加到 GAC,拖放可以,但复制和粘贴不行?为啥?