此程序集位于 GAC 中:Microsoft.SqlServer.Management.RegisteredServers.dll
如何在 Visual Studio 中添加对此程序集的引用?
我可以在 c:\windows\assembly\ 中查看文件
此程序集位于 GAC 中:Microsoft.SqlServer.Management.RegisteredServers.dll
如何在 Visual Studio 中添加对此程序集的引用?
我可以在 c:\windows\assembly\ 中查看文件
正如其他人所说,大多数时候您不想这样做,因为它不会将程序集复制到您的项目中,也不会与您的项目一起部署。但是,如果您像我一样,并尝试添加所有目标机器在其 GAC 中的引用,但它不是 .NET Framework 程序集:
我不知道是否有更简单的方法,但我还没有找到。我还经常使用步骤 1-3 将 .pdb 文件与其 GAC 程序集一起放置,以确保当我以后需要使用远程调试器时它们不会丢失。
将程序集注册到 GAC 中不会在添加引用对话框中放置对程序集的引用。您仍然需要为您的项目按路径引用程序集,主要区别在于您不需要使用复制本地选项,您的应用程序将在运行时找到它。
在这种特殊情况下,您只需要通过路径(浏览)引用您的程序集,或者如果您真的想在添加引用对话框中拥有它,那么您可以在注册表设置中添加其他路径。
请注意,如果您将应用程序发送给未安装此程序集的人,则需要发送它,在这种情况下,您确实需要使用 SharedManagementObjects.msi 可再发行组件。
我创建了一个完全免费的工具,它将帮助您实现目标。Muse VSReferences 将允许您从“添加 GAC 引用”菜单项添加对项目的全局程序集缓存引用。
希望这有助于Muse VSExtensions
在 VS2010 中,您可以从“添加参考”窗口单击“浏览”并导航到 C:\Windows\Assembly 并添加对所需程序集的引用。请注意,这些文件可能被分组在不同的文件夹下,如 GAC、GAC_32、GAC_64、GAC_MSIL 等。
在 VS 中,右键单击您的项目,选择“添加引用...”,您将看到 GAC 中存在的所有命名空间。选择 Microsoft.SqlServer.Management.RegisteredServers 并单击确定,您应该一切顺利
编辑:
这就是你大多数时候想要这样做的方式。然而,经过一番摸索,我在 MS Connect 上发现了这个问题。MS 说这是一个已知的部署问题,他们没有解决方法。那家伙说,如果他从 GAC 文件夹中复制 dll 并将其放入他的 bin 中,它就可以工作。
对我有用的唯一方法是将dll复制到桌面或其他东西中,添加对它的引用,然后从桌面删除dll。Visual Studio 将自行刷新,并最终从 GAC 自身引用 dll。
回答可能为时已晚,但我找到了一种非常简单的方法(无需破解)。
希望能帮助到你
我为 VS 2013 Vitevic GAC Reference找到了这个扩展。