0

リンクされたdllも使用して実行可能ファイルを更新する必要があります。

私はについて読んだことがAppDomainSetup.ShadowCopyFilesありますが、必要なことを行うための正しい手順を試すのに苦労しています

質問は次のとおりです。

  • 更新を通知するとき、または実行可能ファイルを起動するたびにのみ作成する必要があるシャドウコピー?
  • dllと.exeをコピーして更新する正しい手順は何ですか?
4

2 に答える 2

2

シャドウコピーを作成しても、アプリケーションは更新されません。自動更新の一般的なシーケンスには、プロセスを管理する3番目のアプリケーションが必要です。こんな感じです。

  1. メインアプリケーションは更新を検出し、更新ファイルを一時的な場所にダウンロードします
  2. メインアプリケーションはアップデータアプリケーションを起動し、それ自体を終了します
  3. アップデータアプリケーションは、更新ファイルをメインアプリケーションファイルにコピーします
  4. アップデータアプリケーションはメインアプリケーションを起動し、それ自体を終了します

明らかに、これにはエラー処理ロジックが組み込まれています。しかし、それが一般的な考え方です。シャドウコピーはどこにもありません。

于 2013-03-22T16:06:56.193 に答える
1

.NETのシャドウコピー機能を利用することは悪い考えではありません。これにより、アプリケーションを終了せずにアセンブリを更新できますが、更新されたバージョンを実行するには、アプリケーションを再起動する必要があります。シャドウコピーを使用すると、アセンブリを上書きするだけで、他には何もできなくなります。

デフォルトではシャドウコピーを有効にできないことに注意してくださいAppDomain。これは、アプリケーションを作成して実行するローダーが必要になることを意味しますAppDomain。実行する必要のある手順と簡単な実装については、この回答をご覧ください。

アプリケーションを終了せずに更新プログラムをインストールできるようにするだけの場合、これは私が考えることができる最も簡単なアプローチです。

また、MicrosoftのClickOnceテクノロジも確認する必要があります。これは、.NETGUIアプリケーションの展開と更新に関する多くの一般的な問題を解決します。

于 2013-03-24T18:47:21.273 に答える