【问题标题】:VS2005 loading project references from GACVS2005 从 GAC 加载项目引用
【发布时间】:2009-06-17 20:06:31
【问题描述】:

我正在使用 VS2005(还没有移到 2008,因为我仍在使用一些旧工具)并且对项目引用的工作方式有疑问。

如果我对已部署到 GAC 的项目进行项目引用,VS 将使用 GAC 中的程序集。当我在 GACed 程序集中有旧代码并且我正在更改代码并对它们进行快速测试时,这很烦人 - 我必须每次都 GAC 新代码,或者从 GAC 中删除程序集,这样 VS 就无法得到它从那里开始。

有没有办法阻止这种行为?

【问题讨论】:

    标签: visual-studio-2005 reference


    【解决方案1】:

    你不能直接改变引用,直接指向DLL吗? 更好的是,如果您更改 DLL,请使用项目作为参考而不是 GAC DLL?

    【讨论】:

    • 项目直接引用。直接指向 DLL 会破坏这样做的意义。
    【解决方案2】:

    解决此问题的最佳方法是两步过程。

    1.) 在您的 GAC 的 DLL 中升级次要版本号。 (1.0 到 1.1) 2.) 更新项目引用复制到本地,并使用新的版本号。

    这个“应该”让它发挥作用,但对于 GAC,它并不总是 100%。

    您可以通过策略文件来阻止 GAC 加载....但这会变得更加复杂。

    【讨论】:

    • 谢谢,我认为这与版本控制有关。看起来只要 Copy Local 为 true,VS 将始终使用它可以找到的最新版本。看起来如果它在 GAC 和本地找到相同的版本号,它只是使用 GAC 中的版本号。
    • 尼克 - 我会在工作中再扔一个扳手......如果你有一个政策文件,那一切都会消失......
    【解决方案3】:

    在本地复制引用。

    【讨论】:

    • 这似乎不起作用。我清理了 bin 目录,将 Copy Local 设置为 true,重建并确认引用的程序集与项目程序集一起位于 bin/Debug 目录中。引用的程序集仍从 GAC 加载。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 2010-10-17
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多