2012-02-23 47 views
0

我们有一个非常古老的windows程序,用c#开发,每次新发布客户需要重新安装程序的新版本。我想知道如果可能的话。Assembly.Load()还是不是?

  1. 我将所有的类存储到txt文件
  2. 当程序开始运行,我的调度类将搜索相关的txt文件,它会创建表单/类与上飞Assembly.Load。
  3. 让我们假设如果我改变X形式的东西,我只会修改与X形式有关的文本文件并覆盖它。

这可能吗?

+1

通过不递增[的AssemblyVersion]所以只是文件拷贝足以提供缺陷修复。 – 2012-02-23 11:48:15

回答

2

为什么txt文件,你的意思是在源代码形式? Assembly.Load()不是一个编译器。

这不是Java。您不会将类编译为* .class文件(二进制文件)。 将C#类的聚合编译为dll(二进制文件)。 Assembly.Load()只加载.NET dll。

所以不能直接将Assembly.Load()用于文本文件。

+0

那么还有其他方法可以做到吗? – 2012-02-23 11:19:03

0

不需要整个卸载 - 重新安装过程。如果您想更新应用程序的版本,只需将更新后的EXE和DLL文件转储到目录中并直接运行。

将应用程序分割成许多DLL(每个DLL负责特定的表单或组件)可能很诱人,但在大多数情况下,您最好一次更新整个应用程序,以防止兼容性问题。

如果你真的想要的无缝升级,可以考虑使用ClickOnce部署,或类似的(现在已废弃)一些自动更新过程Updater Application Block.