我的客户丢失了他们的 Web 应用程序的源代码,并希望对其进行一些小的更改。我使用 RedGate 的 .Net Reflector 从 DLL 中提取源代码。使用生成的类文件,我能够在所需位置进行更改并重新生成 DLL。应用程序使用的应用程序池是 1.1 版的“默认”,我认为该应用程序也是使用 .Net 框架 1.1 创建的,但我使用 Visual Studio 2008 打开项目并创建新的 DLL。旧的 DLL 也有一些版本号。我的问题是:由于应用程序已经在线,更换新的 DLL 会产生任何问题吗?由于给我们更换 DLL 的时间非常短,因为应用程序不能长时间离线,我想确保一切正常。我是否遵循正确的方法?或者,我是否必须使用相同的框架(1.1)创建新的 DLL?我还需要做什么才能使应用程序顺利运行而没有任何问题。请原谅我这个蹩脚的问题,但这是我第一次遇到这种情况。谢谢。
问问题
2063 次
3 回答
2
在重新构建 DLL 时,您需要确保两件事:
[1] 项目的目标框架与您将部署它的框架相同。您可以从 project->properties 查看当前目标框架版本。如果您的实时服务器只有 1.1,那么您在项目文件中设置的目标也应该如此。
[2] 需要确保满足所有依赖项。您可以从解决方案资源管理器中的引用中查看所有依赖项。
于 2013-04-02T14:57:50.777 回答
1
如果还有其他引用此 DLL 的内容,您可能需要反编译/重新编译该 DLL,并且如果您解构源代码,公钥很可能会发生变化。您应该安全地复制它,这将触发应用程序池的重新启动。
于 2013-04-02T14:56:21.653 回答
0
要限制您遇到的问题,您需要针对 1.1 框架构建程序集。然后,在向下窗口期间:
- 停止应用程序池。
- 更换组件。
- 重新启动应用程序池。
于 2013-04-02T14:55:58.010 回答