2011-01-04 12 views
0

アプリケーションを新しいバージョンに更新する最も良い方法は何ですか?詳細:破損しない自己更新アプリケーションを実装する方法

  • これは.NET 3.5で動作するスタンドアロンのWPF/C#Windowsアプリケーションです。
  • アプリケーションはWindowsの起動時に自動的に起動されます。
  • アプリケーションは、ネットワーク/インターネットアクセスなしでタッチスクリーンパネルPC上で実行されています。
  • ユーザーはWindowsへのアクセスが許可されておらず、キーボードもありません(キオスクで考える)
  • 新しいバージョンのアプリケーションは、USBドライブからインストールできます。ユーザーは、「ソフトウェアの更新」ボタンにアクセスすることができます。このボタンは、サムドライブ上の新しいバージョンのソフトウェアを探し、自動的に更新されます。

私は、アプリケーションを閉じることを考えていましたが、その後アップデータを閉じて起動しました。新しいインストールが中断されたり、アプリケーションが破損したり、キオスクが使用できなくなった場合は避けてください。 Windowsインストーラはこのシナリオに対して保護されていますか?

ありがとうございます!

+0

アプリケーションはexe専用ですか、またはバージョンに依存する追加フ​​ァイルがありますか? –

+0

@タイラー:複数のファイルがあります... dllなど – BabaBooey

答えて

1

この場合、おそらく、新しいフォルダを作成し、そこに新しいバージョンを抽出し、最後に2つのフォルダの名前を変更し、それらを交換した後に古いバージョンを削除することが最善の方法です。アップグレードが完了するまで古いバージョンには触れないように、名前の変更はアトミックでなければなりません。

+0

あなたの解決策では、最後のステップとしてディレクトリの名前を変更する責任は誰にありますか?ホストアプリケーション(更新および削除するアプリケーション)は、独自のディレクトリの名前を変更できないため、これを行うことはできません。ホストアプリケーションを最初に閉じてから、アップデータで作業する必要があるようです。 Windowsインストーラアプリケーション(Visual Studio経由)にこれらの特別な手順を適用することはできますか?または手動でファイルをコピーしてディレクトリの名前変更/削除を実行するカスタムアプリケーションを作成する必要はありますか? – BabaBooey

関連する問題