0

プロジェクトがWiXあり、にあるフォルダーにいくつかの実行可能ファイルとライブラリをインストールしますProgramFiles

これらの実行可能ファイルの1つを実行すると、問題が発生します。それらのいくつかは、実行する必要のあるAdministratorすべてのタスクを実行するために実行する必要があります。それを右クリックして管理者として実行すると、うまく機能します。しかし、私はWiXに自分のファイルに対するそのアクセス許可をそれ自体で昇格させたいと思っています。

方法はありますか?

私はこれをやってみました:

<Package Id="$(var.GUID_Package)"
         InstallPrivileges="elevated"
         InstallScope="perMachine" ...>

と:

<Property Id="MSIUSEREALADMINDETECTION" Value="1" />

ただし、これら2つのオプションは、.msiパッケージに対してのみ機能します(インストールされたファイルに対しては機能しません)。

注:私は自分自身を正しく説明しなかったと思います...私の問題は、インストールされたファイルのアクセス許可にありました。権限が原因で正しく実行できませんでした。管理者として実行すると、明らかに、すべての権限が実行に適しています。だから私がしなければならなかったのは、私が問題を抱えていた各ファイルのアクセス許可を変更することでした。

4

3 に答える 3

0

これは、インストーラーで行うことによって修正することはできません。

exeがProgファイルディレクトリ内のファイル/フォルダを変更するなど、1回限りのセットアップを実行している場合は、それをwixインストーラに移動することを検討してください。

それがすべての実行で起こっていることである場合、それが何をしているのかを特定し、仰角を必要としない方法でそれを行うように変更しようとする必要があります。それが不可能な場合、私は恐れているので、あなたは昇格しなければならないことに固執するでしょう。これを支援する他の唯一の方法は、管理者に対して自動的に昇格するようにローカルマシンポリシーを設定することです。

于 2013-03-21T17:08:29.230 に答える
0

msi を exe に変換するオプションを使用できます。ユーザーが exe を実行すると、ユーザーは管理者として実行するように求められます。

同じためにdontnetinstallerを使用していますが、完璧に機能します。

于 2013-03-21T22:11:23.783 に答える
-1

興味があるかもしれない人のために、私は解決策を見つけました。

最初に、.wxsプロジェクトに への参照を追加しましWixUtilExtensionた。これは WiX フォルダーにあります。

次のように外部参照として追加することもできます。

xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"

その後、ローカルで使用できましたPermissionEx

   <File Id="$(var.productFamily)$(var.productSummary)"
      Name="$(var.productFamily)$(var.productSummary).exe"
      DiskId="1" KeyPath="yes"
      Source="$(var.release)$(var.productFamily)$(var.productSummary).exe" >
      <util:PermissionEx User="Everyone" GenericAll="yes" ChangePermission="yes" />
  </File>

それで、私は彼らの権限を昇格させることができました。

于 2013-03-21T18:06:06.733 に答える