現在、2つのexeファイルがあります。app.exeおよびupdater.exe。app.exeは、利用可能な新しいバージョンがあることを検出すると、updater.exeを実行し、updater.exeをダウンロードして置き換えます。
updater.exeをapp.exeに組み込むことができるかどうか疑問に思っています。アプリの起動時に、ディレクトリにupdater.exeがあるかどうか、およびそれが抽出されていないかどうかを確認する必要があります。助けていただければ幸いです。
updater.exeをリソースとしてapp.exeに統合できます。次のSO投稿は、実行時にそれを抽出する方法を示しています。
アプリケーションがデフォルトのアプリケーションディレクトリ(C:\Program Files
、またはより一般的には%ProgramFiles%
)にある場合、同じディレクトリにファイルを作成する権限がないことに注意してください(これは良いことです)。したがって、updater.exeを、現在のユーザーが書き込み権限を持っている一時ディレクトリ( Path.GetTempPathなど)に抽出する必要がある場合があります。
私があなたを正しく理解しているとき、あなたはあなたのupdater.exeをあなたのapp.exeにリソースとしてパックする必要があります。App.exeの起動時に解凍します。
しかし、私はあなたに言うことができます、置換を伴うこの考えは悪いです。アプリケーションをデプロイするには、MSIパッケージを選択する必要があります。
ディレクトリの内容のトラバースと一覧表示については、http://msdn.microsoft.com/en-us/library/system.io.directory.aspxを参照してください。
埋め込みリソースへのアクセスについては、http://msdn.microsoft.com/en-us/library/xc4235zt.aspxを参照してください。
バイナリデータのディスクへの書き込みについては、http://msdn.microsoft.com/en-us/library/system.io.binarywriter.aspxを参照してください。
ディスクからexeを実行する方法については、http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspxを参照してください。