【问题标题】:Reference non-GAC version of DLL in Visual Studio 2010在 Visual Studio 2010 中引用非 GAC 版本的 DLL
【发布时间】:2010-05-26 21:19:00
【问题描述】:

这类似于Add Non-GAC reference to project,但那里提供的解决方案似乎没有帮助。

我在 GAC 中安装了一个 WinForms UI 库(来自 ComponentFactory 的氪)。我想在那个库中追踪一个错误,所以我将源代码添加到我的解决方案中,从我的 WinForms 项目中删除了对 Krypton DLL 的旧引用,将它们作为项目引用添加回来,确保 Copy Local 设置为 true,仔细检查路径(在引用属性选项卡上)是否指向我的本地项目,并且...

...调试时仍在使用 GAC 版本。我无法在 Krypton 源代码中设置断点,Debugger.Break() 或其他代码更改以不执行,并且当我启动 Visual Studio 2010 调试器时,我在VS 2010 状态栏。 DLL 不会复制到 WinForm 的 Debug 文件夹。

如何在调试时引用文件的“项目”版本,同时让它们在 GAC 中注册?

【问题讨论】:

    标签: visual-studio-2010 reference gac


    【解决方案1】:

    CLR 将始终首先查看 GAC。不要犹豫,使用 gacutil.exe /u 删除它们。破解 [AssemblyVersion] 也可以,这样 GAC 副本就不会匹配。

    【讨论】:

    • gacutil 似乎位于多个地方 - 尝试在 C:\Program Files (x86)\ 中搜索。这是我服务器上的路径之一:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\x64
    • 这仍然是真的吗?现在有没有办法优先考虑引用的项目而不是 GAC?在我看来,调试上下文中的一个重大缺陷;微软应该解决这个恕我直言。
    • 它是真的,它仍然是真的,它永远是真的。你必须和微软谈谈,但你可以很确定他们会完全忽略你 :) 在你的开发机器上滥用 GAC 只是一个坏主意,这是一个部署细节,只对用户的机器。那是 DLL Hell 的真正受害者。开发机器上的地狱是一个自己造成的问题。
    猜你喜欢
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多