我如何从Visual Studio中引用GAC中的dll?

此程序集位于GAC:Microsoft.SqlServer.Management.RegisteredServers.dll中

如何在Visual Studio中添加对此程序集的引用?

我可以在c:\ windows \ assembly \

正如其他人所说,大多数时候你不会想这样做,因为它不会将程序集复制到项目中,也不会在项目中进行部署。 但是,如果你和我一样,并且试图添加一个所有目标机器在GAC中的引用,但它不是.NET Framework程序集:

  1. 打开Windows运行对话框(Windows键+ r)
  2. 键入C:\ Windows \ assembly \ gac_msil。 这是一些奇怪的黑客,可以让你浏览你的GAC。 您只能通过运行对话框进入。 希望我传播这个信息并不会最终导致微软修补和阻止它。 (太偏执?:P)
  3. find你的程序集,并从地址栏中复制它的path。
  4. 在Visual Studio中打开“添加引用”对话框,然后select“浏览”选项卡。
  5. 粘贴到您的GAC程序集的path。

我不知道是否有更简单的方法,但我还没有find。 我还经常使用步骤1-3将.pdb文件放置在GAC程序集中,以确保在稍后需要使用远程debugging程序时它们不会丢失。

我创build了一个完全免费的工具,可以帮助您实现目标。 Muse VSReferences将允许您从“添加GAC参考”菜单项中将全局程序集caching引用添加到项目中。

希望这有助于缪斯VSExtensions

在GAC中注册组件不会在添加引用对话框中引用组件。 你仍然需要通过你的项目的path引用程序集,主要的区别是你不需要使用copy local选项,你的应用程序会在运行时find它。

在这个特殊情况下,你只需要通过path(浏览)引用你的程序集,或者如果你真的想在添加引用对话框中有它,有一个registry设置,你可以添加额外的path。

请注意,如果您将应用发送给没有安装此程序集的用户,则需要发送该程序,在这种情况下,您确实需要使用SharedManagementObjects.msi可再发行组件。

在VS2010中,从“添加重要性”窗口中,单击“浏览”并导航到C:\ Windows \ Assembly,并添加对所需程序集的引用。 请注意,这些文件可能会分组在不同的文件夹下,如GAC,GAC_32,GAC_64,GAC_MSIL等。

在VS中,右键单击您的项目,select“添加引用…”,您将看到GAC中存在的所有命名空间。 selectMicrosoft.SqlServer.Management.RegisteredServers并单击确定,你应该很好去

编辑:

大部分时间你都希望这样做。 然而,经过一些捅了一下,我发现这个问题在MS连接。 MS说,这是一个已知的部署问题,他们没有解决。 该家伙说,如果他从GAC文件夹中复制dll并将其放入他的垃圾箱,它就可以工作。

唯一的方法,我工作是通过将dll复制到您的桌面或东西,添加引用,然后删除您的桌面上的DLL。 Visual Studio将自行刷新,并最终从GAC本身引用dll。

假设你尝试了“添加引用…”,如上所述,并没有成功,你可以看看这里 。 他们说你必须满足一些先决条件: – .NET 3.5 SP1 – Windows Installer 4.5

编辑:根据这个职位,这是一个已知的问题。

这可能是你正在寻找的解决scheme:)

可能是为时已晚,但我find了一个非常简单的方法来做到这一点(没有黑客)。

  1. 把你的dll放在GAC中 (3.5拖放在“C:\ Windows \ assembly \”中
  2. 转到项目 – >属性
  3. 单击参考path (对于3.5是“C:\ Windows \程序集”
  4. 和Build

希望能帮助到你

相关的文件和参考资料可以在这里find:

http://msdn.microsoft.com/en-us/library/cc283981.aspx

注意关于实现/ etc的链接。

我发现VS 2013 Vitevic GAC参考的这个扩展。