更新生产ASP.NET网站bin文件夹中的DLL

Jos*_*ola 12 asp.net deployment assemblies reference fileloadexception

我想更新生产Web应用程序中的类库(单个DLL文件).此Web应用程序已预编译(已发布).我在StackOverflow上读了一个答案(抱歉,似乎无法找到它,因为搜索功能不能很好地工作),这让我相信我可以将新的DLL粘贴到bin文件夹中并且它会被选中没有问题(这会导致WP回收,这对我来说很好,因为我们不使用InProc会话状态).

但是,当我尝试这个时,我的网站爆炸并提供一个FileLoadException,说明程序集清单定义与程序集引用不匹配.这个世界到底是什么?!在Visual Studio中更新DLL并重新部署整个站点工作得很好,但后面是一个巨大的痛苦.如果必须重新部署整个站点以实现任何更改,那么拥有单独的DLL有什么意义呢?

这是一个问题:如何在不破坏应用程序且不重新部署所有文件的情况下更新生产网站上的DLL?

Dil*_*e-O 9

要记住的是,考虑到Visual Studio和ASPNET ,有网站Web应用程序.

Web站点通常将所有aspx和vb文件发布到实时服务器,ASPNET Worker Process每次在演示之前重新编译应用程序.

另一方面是Web应用程序,其中所有代码隐藏文件都被编译为单个DLL文件,您只需部署您的aspx页面,并将bin文件夹与DLL文件一起生成.

还有一个称为" 预编译网站 " 的"混合" (请参阅官方MSDN概述的链接),其中您没有Web应用程序的单个DLL布局,但网站的所有编译工作都是为您.根据您的需要,有几种"模式".

在我看来,您的错误是由于您的网站设置为具有某种预编译的网站而引起的.使用预编译的模型有点"严格",因为假设某些文件/签名到位.拥有DLL文件的更新版本会导致中断,因为预编译需要文件的名称和版本.

如果可能,您最好的选择是转换为Web应用程序,因为您可以将其他DLL添加到生产中而不会出现问题.否则,请查看此矩阵以查看应用程序所需的预编译形式.