用新DLL替换旧DLL

时间:2013-04-02 14:52:49

标签: c# asp.net

我的客户丢失了其网络应用程序的源代码,并希望对其进行一些小的更改。我使用RedGate的.Net Reflector从DLL中提取源代码。使用生成的类文件,我能够在所需的位置进行更改并重新生成DLL。应用程序使用的应用程序池是1.1版的“默认”,我认为该应用程序也是使用.Net framework 1.1创建的,但我使用visual studio 2008打开项目并创建新的DLL。旧的DLL也有一些版本号。我的问题是:既然应用程序已经在线,那么替换新的DLL会产生什么问题吗?由于应用程序不能长时间保持脱机状态,因此给我们替换DLL的时间范围非常小,我想确保一切正常。我遵循正确的方式吗?或者,我是否必须使用相同的框架(1.1)创建新的DLL?我还需要做些什么来保持应用程序平稳运行而不会出现任何问题。请原谅我这个蹩脚的问题,但这是我第一次遇到这种情况。感谢。

3 个答案:

答案 0 :(得分:2)

在重新构建DLL时,您需要确保两件事:

[1]项目的目标框架与您将部署它的目标框架相同。您可以从project->属性中检查当前目标框架版本。如果您的实时服务器只有1.1,那么应该是项目文件中设置的目标。

[2]需要确保满足所有依赖关系。您可以在解决方案资源管理器中查看引用中的所有依赖项。

答案 1 :(得分:1)

如果还有其他任何引用此DLL的内容,您可能需要反编译/重新编译,如果解构源代码,公钥很可能会发生变化。您可以安全地将其复制,这将触发重新启动应用程序池。

答案 2 :(得分:0)

要限制遇到的问题,需要根据1.1框架构建程序集。然后,在向下窗口期间:

  1. 停止应用程序池。
  2. 更换组件。
  3. 重新启动应用程序池。