0

WiXインストーラーを使用してインストールされたWPFアプリがあります。私はすべてのアプリケーションデータをAppDataフォルダーに書き込んでいます-これは正常に機能します(多かれ少なかれ)。インストーラーには昇格されたアクセス許可が必要です(プログラムファイルに書き込むためだと思いますか?)。

アプリにパッケージ化されている、読み取る必要のあるテキストファイルがいくつかあります。現在、プログラムファイルの.exeと同じフォルダーにありますが、管理者として実行しない限り、アプリはそれらを読み取ることができません。

コードは次のとおりです。

using (FileStream file = new FileStream("file.txt", FileMode.Open))
{
    using (StreamReader reader = new StreamReader(file))
    {
        . . .
    }
}

AppDataにファイルを配置するようにインストーラーを変更する以外に、管理者として実行する必要を回避するための簡単な方法はありますか?

4

2 に答える 2

2

ファイルのパーミッションを変更することもできます:

<File Id="file.txt" 
      Name="file.txt" 
      Source="$(var.MyApplication.TargetDir)file.txt">
  <Permission GenericAll="yes" User="Everyone"/>
</File>
于 2013-02-15T15:17:29.973 に答える
1

最善のオプションは、おそらくwixにAppDataFolder内のファイルのコピーを作成するように指示することです。

<Directory Id="AppDataFolder" Name="AppDataFolder">
  <Directory Id="appFolder" Name="xx">
    <Component Id="component" Guid="...">
      <File Id="file.txt" Name="file.txt" KeyPath="yes" Source="Assets\file.txt" />
    </Component>
  </Directory>
</Directory>
于 2013-02-15T13:50:32.100 に答える