55

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

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

我可以在 c:\windows\assembly\ 中查看文件

4

10 回答 10

62

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

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

我不知道是否有更简单的方法,但我还没有找到。我还经常使用步骤 1-3 将 .pdb 文件与其 GAC 程序集一起放置,以确保当我以后需要使用远程调试器时它们不会丢失。

于 2010-09-16T15:57:18.463 回答
18

将程序集注册到 GAC 中不会在添加引用对话框中放置对程序集的引用。您仍然需要为您的项目按路径引用程序集,主要区别在于您不需要使用复制本地选项,您的应用程序将在运行时找到它。

在这种特殊情况下,您只需要通过路径(浏览)引用您的程序集,或者如果您真的想在添加引用对话框中拥有它,那么您可以在注册表设置中添加其他路径。

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

于 2009-01-14T21:54:04.487 回答
15

我创建了一个完全免费的工具,它将帮助您实现目标。Muse VSReferences 将允许您从“添加 GAC 引用”菜单项添加对项目的全局程序集缓存引用。

希望这有助于Muse VSExtensions

于 2010-04-29T08:07:45.583 回答
8

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

于 2011-04-29T08:38:05.997 回答
6

在 VS 中,右键单击您的项目,选择“添加引用...”,您将看到 GAC 中存在的所有命名空间。选择 Microsoft.SqlServer.Management.RegisteredServers 并单击确定,您应该一切顺利

编辑:

这就是你大多数时候想要这样做的方式。然而,经过一番摸索,我在 MS Connect 上发现了这个问题。MS 说这是一个已知的部署问题,他们没有解决方法。那家伙说,如果他从 GAC 文件夹中复制 dll 并将其放入他的 bin 中,它就可以工作。

于 2009-01-14T21:11:34.510 回答
4

对我有用的唯一方法是将dll复制到桌面或其他东西中,添加对它的引用,然后从桌面删除dll。Visual Studio 将自行刷新,并最终从 GAC 自身引用 dll。

于 2012-01-18T08:49:20.107 回答
3

假设您已经尝试按照上面的说明“添加参考...”但没有成功,您可以在这里查看。他们说您必须满足一些先决条件: - .NET 3.5 SP1 - Windows Installer 4.5

编辑:根据这篇文章,这是一个已知问题。

可能是您正在寻找的解决方案:)

于 2009-01-14T21:14:32.727 回答
1

回答可能为时已晚,但我找到了一种非常简单的方法(无需破解)。

  1. 将您的 dll 放入GAC(对于 3.5 Drag Drop 内"C:\Windows\assembly\"
  2. 转到项目 --> 属性
  3. 单击参考路径(对于 3.5,它是"C:\Windows\assembly\"
  4. 并建立

希望能帮助到你

于 2015-06-19T14:59:22.377 回答
0

相关文件和参考资料可以在这里找到:

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

请注意有关实施/等的链接。

于 2011-01-13T14:17:14.007 回答
0

我为 VS 2013 Vitevic GAC Reference找到了这个扩展。

于 2015-08-14T09:38:44.800 回答