0

ハンドオフ パッケージの msi の隣にあるいくつかのファイルを展開するために使用しているカスタム アクションがあります。私のカスタム アクションは、OriginalDatabase パラメーターを介して msi パスを渡され、その横にフォルダーがあるかどうかを確認しています。クレイジーなことは何もありませんが、理解するのは大変でした。

ローカルにコピーされたファイルから単一または複数のユーザーをインストールすることは、チャンピオンのように機能します。ネットワーク共有から setup.exe を実行しているときに単一ユーザーをインストールすると問題なく動作しますが、ネットワーク共有からすべてのユーザーをインストールすると、セキュリティ例外が発生します。

問題の行は次のとおりです。

DirectoryInfo[] subdirectories = workingDirectoryInfo.GetDirectories("Foo");

カスタム アクションは で実行されるSecurityAction.Demandため、必要なすべてのアクセス権が必要です。

誰でも提供できる情報は大歓迎です。

ありがとう、ケーシー

4

1 に答える 1

0

ユーザーごとにインストールすると、サーバー側はトランザクションを実行するために昇格する必要がないため、対話型ユーザーになりすましてファイルにアクセスできると思います。すべてのユーザー用にインストールする場合は、昇格する必要があるため、基本的にマシンアカウントを使用してファイルにアクセスし、アクセス許可エラーが発生するシステムとして実行されます。

これらのファイルがインストーラーにない理由をお尋ねしてもよろしいですか? カスタムアクションが不要になるようにそれらを含める方法はありませんか? そうしないと、OriginalDatabase がネットワーク共有上にあることを検出するカスタム アクションを作成し、ユーザーが実行前にすべてのファイルをコピーしない限り、インストールを防止する必要がある場合があります。

于 2010-09-28T22:44:52.500 に答える