有几个问题已经回答了 HOW ,或者更确切地说是如何解决这个Visual Studio限制:
GAC Assembly Missing in Add Reference dialog How can I reference a dll in the GAC from Visual Studio?
您无法添加来自的引用 全局程序集缓存(GAC),原样 严格地说是运行时的一部分 环境。
因此,Visual Studio团队似乎是故意这样做的。也许他们这样做了所以你不伤害自己?通过使用像这样的VS extension引用GAC中的程序集,我违反了什么最佳做法?我错过了什么吗?
只需仔细检查社区,感谢您的想法。
答案 0 :(得分:3)
它实际上并没有阻止你这样做。特别是对于.NET 4.0,您可以使用“浏览”选项卡访问c:\ windows \ microsoft.net \ assembly。 4.0
不包括shell扩展处理程序,它阻止您通过shell对话框访问.NET 2.0 GAC但是,这是一个非常糟糕的主意。 GAC是部署实施细节,您无法假定GAC的内容与其他计算机上的内容相匹配。只有参考程序集才能为您提供一组稳定的类型定义,这些类型定义在您通过Windows Update获得安全更新时不会更改。
这对.NET 4.0更为重要。它的参考组件很特别。它们不再是您可能在GAC或c:\ windows \ microsoft.net中找到的程序集的副本。它们只包含元数据,没有IL。这允许Microsoft部署更新以更改程序集中的公共类型。 .NET 2.0 Service Pack中出现严重错误的东西(例如WaitHandle.WaitOne(int))。
答案 1 :(得分:3)
使用Sharp Develop(用于.NET的开源IDE),您可以添加GAC引用,使用.NET 4可以添加GAC引用。您绝对不会通过添加GAC引用来伤害自己。我没有得到使用它的开发人员的任何负面反馈。
很快this extension会有更多性感的功能。
答案 2 :(得分:1)
因为GAC可以拥有给定程序集的多个版本,所以它会非常快速地变得非常复杂。要求您要引用的版本的副本位于普通文件夹中更容易。
(大部分时间你都不应该使用GAC,因为它与注册表在COM时代一样痛苦。)