asp.net - bin 和 gac 中都有 Dll,使用哪一个?

标签 asp.net deployment gac bin

我们有一个 Web 应用程序,已部署到许多网站,仅需要更改前端,共享后端部分的 DLL 位于 GAC 中,因此我们只需更新该 DLL,所有网站都会获得更新。

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

最佳答案

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

如果您增加版本号,引用新版本号重建网站,将新版本放在/bin 目录中,则将使用该 DLL。

如果您不想更改版本号,那您就运气不好了。

当 .NET 加载强命名程序集时,它首先尝试确定要使用的版本号。它首先通过引用来执行此操作,然后查找 publisher policies ,然后它会查找 binding redirects在配置文件中。

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

如果您不更改强命名程序集的版本号,.NET 将在 GAC 中找到原始程序集并停止查找。请注意,因为它在找到一个时就会停止,并且因为首先要查找 GAC,所以为程序集指定代码库不会有任何好处,除非您还指定了新的版本号。

关于asp.net - bin 和 gac 中都有 Dll,使用哪一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/981142/

相关文章:

python - 如何在生产中调试ajax View ?

linux - Qt Creator 为 Raspberry Pi 2 进行交叉编译和远程部署的正确设置 - 为错误的架构生成二进制文件

powershell - 为什么我的 .NET 4.0 程序集不能使用 Powershell 注册到 GAC?

c# - 从 GAC 列出所有实现特定接口(interface)的 DLL

asp.net - 将 ASP.NET 项目更新为 HTML5

c# - 我应该将 SQL Server UNIQUEIDENTIFIER 检索到哪种 C# 数据类型?

asp.net - 如何使用 javascript 在客户端重新加载更新面板?

c# - 从 C# 上的 linq 获取 JSON 数组

php - 通过 FTP 部署 PHP/MySQL 站点的好的解决方案是什么?

asp.net - ASP.net 网站中的模糊引用,c :\windows\Assembly