基本的に、ユーザーのコンピューターにインストールされているアプリケーションがあります。
ユーザーは Windows 7 を使用しています。ユーザーには管理者アクセス権が付与されていません。ただし、アプリケーションは、ファイルを独自の Program Files ディレクトリに保存できる必要があります。
私が行きたかった道は次のとおりです。
- さまざまなバイナリ (Web サービス) をダウンロードします。
- 一時フォルダー内のファイルにバイナリーを書き込みます。
- コンソール アプリを起動します。(コンソールアプリはメインアプリがシャットダウンするのを待ちます)
- コンソール アプリは、一時ファイルを Program Files ディレクトリにコピーします。
- コンソール アプリは、メイン アプリを再起動します。
- コンソール アプリがシャットダウンします。
問題は、Windows 7 では、管理者として実行されていないアプリケーションが Program Files ディレクトリに書き込むことを許可していないことと、その理由 (セキュリティのため) を理解していますが、このアプリを自分で作成しているため、自分でマシンにインストールしていることです。 、ポップアップボックスでアプリを管理者として実行するように要求せずに、アプリが存在するディレクトリに書き込みできるようにする方法はありますか (相対パスを使用するため、プラットフォームに依存しません)。アプリを常に管理者として実行するように署名することはできませんか?
実際、メイン アプリケーションを管理者アクセスで実行する必要さえありません。これらの一時ファイルを永続ファイルとしてコピーできるようにするには、コンソール アプリ (一時ファイルをコピーするアプリ) が必要です。
更新: はい、これは自動更新アプリケーション用です。私は ClickOnce などについて考えましたが、主に更新を静かに、少しずつ行う必要があるため、独自の内部更新を作成するように導く追加の要件があります。場合によっては (更新された部分に応じて) アプリケーションをシャットダウンし、ファイルを移動して再起動する必要があります。また、アプリケーションが単にファイルを移動して実行を継続する必要がある場合もあります。
ClickOnce は私の状況では機能しませんでした。私たちの組織は、将来のニーズに合わせてカスタマイズできるように社内で何かを探していました。