代码之家  ›  专栏  ›  技术社区  ›  John Boker

bin和gac中的Dll,哪个会被使用?

  •  76
  • John Boker  · 技术社区  · 16 年前

    我们有一个web应用程序,它部署到许多只进行前端更改的网站上,共享后端部分在GAC中有它的DLL,所以我们只需要更新一个DLL,所有网站都会得到更新。

    是否有方法在/bin文件夹中用DLL覆盖GAC,以便在发布新功能之前对其进行测试?

    4 回复  |  直到 16 年前
        1
  •  87
  •   Adam Sills    16 年前

    如果它与引用的DLL具有相同的版本号,则使用GAC。

    如果增加版本号,请参考新版本号重建网站,将新版本放在/bin目录中,然后将使用该DLL。

    如果你不想更改版本号,那你就倒霉了。

    什么时候。NET加载强命名程序集,首先它试图决定使用哪个版本号。它首先通过引用执行此操作,然后查找 publisher policies ,然后它会查找 binding redirects

    codebase specified ,然后它会探测各种文件系统文件夹中的DLL。如果在这些步骤中的任何一个找到了正确的版本程序集,它就会停止。

        2
  •  11
  •   IsolatedStorage    15 年前

    我已经能够使用\bin文件夹中的程序集覆盖GAC <codebase> 元素。

    通过指定 <codebase version="1.2.3.4" href="/bin/MyAssembly.dll" /> 在我的web.config文件中,我可以告诉我的应用程序使用此版本,而不是GAC中指定的版本。

    <probing> 用于指定装配位置的元素?

        3
  •  2
  •   J.Hendrix    16 年前

        4
  •  0
  •   BALKANGraph    16 年前

    推荐文章