あなたのアイデアにはセキュリティ上の問題があります。誰でも簡単にプログラム ファイルを変更できます。Google Chrome にも同じセキュリティ上の問題があります。マルウェアがファイルを変更するのははるかに簡単です。
のデフォルトの権限を変更することは絶対にお勧めしませんC:\Program Files\myApp\bin
。
重複を防ぎたい場合は、 を使用できますC:\ProgramData
。これは、 ほど厳密ではありませんProgram Files
が、同じセキュリティ リスクがあります。
したがって、ユーザーのセキュリティを気にする場合は、アプリケーションを にインストールする必要がありますProgram Files
。したがって、ファイルが意図せずに変更されるのを防ぐシステム保護が得られます。
アップデータ アプリケーションは、新しいファイルを に書き込む前に昇格しますProgram Files
。欠点は、ユーザーがUAC プロンプトで[続行] ボタンをクリックする必要があることです。更新がかなりまれな場合は、これが最も簡単な方法です。Mozilla Firefox は以前、このアプローチを使用していました。ブラウザは更新をダウンロードし、次回の起動時に UAC 確認を表示し、更新されたファイルを に書き込みますProgram Files
。
最近、Firefox の更新エクスペリエンスが変更されました。更新を処理するサービスをインストールします。そうすれば、ユーザーは UAC の確認に煩わされることなく、すべてが透過的に行われます。彼らは Firefox を起動します。更新がある場合は、サービスが開始されます。サービスはシステム権限で実行されるため、プログラム ファイルへの書き込みアクセス権があり、ファイルが更新され、更新された Firefox が開始され、サービスがシャットダウンされます (次回まで)。アップデート)。
私は Firefox のアプローチがもっと好きです。Firefox のファイルは、ファイル システムのパーミッションによって意図しない変更から保護されています。同時に、静かに更新されるようになりました。彼らが更新サービスを実装する前は、3 か月に 1 回、UAC プロンプトで [続行]を押すことを気にしませんでした。