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

时间:2009-01-14 21:01:36

标签: visual-studio assemblies gac

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

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

我可以在c:\ windows \ assembly \

中查看该文件

10 个答案:

答案 0 :(得分:55)

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

  1. 打开Windows运行对话框(Windows Key + r)
  2. 键入C:\ Windows \ assembly \ gac_msil。这是一种奇怪的黑客攻击,可让您浏览GAC。您只能通过运行对话框访问它。希望我传播此信息最终不会导致Microsoft修补它并阻止它。 (太偏执了?:P)
  3. 找到您的程序集并从地址栏复制其路径。
  4. 在Visual Studio中打开“添加引用”对话框,然后选择“浏览”选项卡。
  5. 粘贴到GAC程序集的路径中。
  6. 我不知道是否有更简单的方法,但我还没有找到它。我还经常使用步骤1-3将.pdb文件与其GAC程序集放在一起,以确保在以后需要使用远程调试程序时它们不会丢失。

答案 1 :(得分:14)

我创建了一个完全免费的工具,可以帮助您实现目标。 Muse VSReferences将允许您从Add GAC Reference菜单项添加项目的Global Assembly Cache参考。

希望这有助于Muse VSExtensions

答案 2 :(得分:13)

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

在这种特殊情况下,您只需要按路径引用程序集(浏览),或者如果您真的想在添加引用对话框中使用它,则可以在其中添加其他路径。

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

答案 3 :(得分:7)

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

答案 4 :(得分:5)

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

编辑:

这就是你想要在大多数时间里做这件事的方式。但是,经过一番探索,我在MS Connect上发现了this issue。 MS表示这是一个已知的部署问题,他们没有解决方法。该家伙说,如果他从GAC文件夹中复制dll并将其放入他的垃圾箱,它就可以了。

答案 5 :(得分:4)

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

答案 6 :(得分:3)

假设您已尝试“添加参考...”,如上所述但未成功,您可以查看here。他们说你必须满足一些先决条件:   - .NET 3.5 SP1   - Windows Installer 4.5

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

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

答案 7 :(得分:1)

回答可能为时已晚,但我找到了一种非常简单的方法(没有黑客攻击)。

  1. 将您的dll放入 GAC (对于“C:\ Windows \ assembly \”中的3.5 Drag Drop)
  2. GoTo Projects - >特性
  3. 点击参考路径(对于3.5,“C:\ Windows \ assembly \”
  4. 和Build
  5. 希望有所帮助

答案 8 :(得分:0)

相关文件和参考资料可在此处找到:

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

请注意关于实现/ etc。

的链接

答案 9 :(得分:0)

我在VS 2013 Vitevic GAC Reference找到了此扩展程序。