2012-02-23 45 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.