2012-02-23 6 views
0

私たちはC#で開発された非常に古いWindowsプログラムを持っています。また、新しいパブリッシュごとに、お客様はプログラムの新しいバージョンを再インストールする必要があります。私はそれが可能ならばそれが不思議です。Assembly.Load()またはNot?

  1. 私はプログラムの実行を開始すると、私のディスパッチャクラスは、関連するtxtファイルを検索しますと、それはその場でAssembly.Loadとフォーム/クラスを作成します
  2. TXTファイルにすべてのクラスを格納します。
  3. Xフォームで何かを変更した場合、Xフォームに関連するテキストファイルのみを修正して上書きします。

これは可能ですか?

+1

[のAssemblyVersion]これだけのファイルコピーをインクリメントしないことによって、バグ修正を十分なものです。 –

答えて

2

txtファイルとは、ソースコード形式の意味ですか? Assembly.Load()はコンパイラではありません。

これはJavaではありません。クラスを* .classファイル(バイナリファイル)にコンパイルしません。 C#クラスの集合体は、dll(バイナリファイル)にコンパイルされます。 Assembly.Load()は.NET DLLのみをロードします。

したがって、テキストファイルではAssembly.Load()を直接使用することはできません。

+0

他の方法はありますか? –

0

アンインストール再インストールの手順は一切不要です。アプリのバージョンを更新する場合は、更新されたEXEファイルとDLLファイルをディレクトリにダンプし、直接実行することができます。

アプリケーションを複数のDLLに分割したくなるかもしれませんが、互換性の問題を避けるために、ほとんどの場合、アプリケーション全体を一度に更新するほうがよいでしょう。

あなたが本当にシームレスな更新をしたい場合は、(現在は廃止)のようなClickOnce配置、または一部の自動更新プロセスを使用することを検討してはUpdater Application Block.

関連する問題