プログラム ファイルのカスタム フォルダーに小さなプログラムをインストールしていますが、操作に必要なファイルの読み取りまたは書き込みを行おうとすると、プログラムで Access Denied Exeption が発生します。もちろん、ユーザーの許可を得て、プログラムを昇格させるにはどうすればよいですか。
4 に答える
あなたはVistaで実行していると思いますか?Vista では、Program Files の下のファイルの読み取り/書き込みが許可されていないと思います。代わりに、データ ファイルを Documents and Settings に配置する必要があります。
読み取り中にアクセス拒否例外を解決するには。ファイル アクセスを読み取りとして指定してください。読み取り中にアクセス拒否の例外が解決されます。
e.g. fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
ClickOnceは、任意の数の実行可能ファイルのインストールをサポートしますが、マニフェスト定義に手動で含める必要がある場合があります。
正しく、最小ユーザーアクセス(LUA)とユーザーアクセス制御(UAC)の制限内でうまく機能するために、アプリケーションは、インストール中を除いて、プログラムファイルフォルダーにまったく書き込みを行わないでください。これを行う必要がある場合は、アプリケーションを実行するために昇格された特権が必要であることを示すマニフェストファイルを含める必要があります。(Vistaで実行している場合は、互換性モードを設定することもできます。)
ClickOnce APIを使用して、必要なことはすべて実行できます。複数のパーツ (複数の EXE など) がある場合は、それらをパッケージに含める必要があります。
私が知る限り (ClickOnce で) サポートされていない唯一のシナリオは、プロキシの認証です。