自動的に更新されるWindowsアプリを作成しています。さまざまな理由でClickOnceを使用していません。更新したファイルをWindows7のC:\ Program FilesにFile.Move()しようとすると、次のエラーが発生します。
パス'C:\ Program Files \ <company> \ <app>\<app.exe>'へのアクセスが拒否されました。
UACプロンプトが表示されません。更新しようとしているexeは現在実行されていません。
自動的に更新されるWindowsアプリを作成しています。さまざまな理由でClickOnceを使用していません。更新したファイルをWindows7のC:\ Program FilesにFile.Move()しようとすると、次のエラーが発生します。
パス'C:\ Program Files \ <company> \ <app>\<app.exe>'へのアクセスが拒否されました。
UACプロンプトが表示されません。更新しようとしているexeは現在実行されていません。
UACプロンプトが表示されなくても、問題はUACです。
自動的に昇格するには、プログラムのマニフェストを変更する必要があります。(これにより、UACプロンプトが表示されます)
プログラムのインストール フォルダに変更を加えることはできません。必要な管理者権限がありません。アップデーターにマニフェストを追加することは実用的ではありません。ユーザーは、昇格のプロンプトを見てすぐに飽きてしまいます。
唯一の実用的な方法は、アップデーターをスケジュールされたタスクとして実行することです。これらのタスクは、スケジュールに管理者権限が必要なため、管理者権限で実行することが許可されています。これは、インストーラーで行う必要があります。