0

我有一个使用 WiX 安装程序安装的 WPF 应用程序。我正在将所有应用程序数据写入 AppData 文件夹——它工作正常(嗯,或多或少)。安装程序需要提升权限(我猜是写入程序文件?)。

有几个与应用程序一起打包的文本文件需要阅读。我目前将它们与 .exe 放在 Program Files 中的同一文件夹中,但除非我以管理员身份运行,否则该应用程序无法读取它们。

这是代码:

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 在 App Data 文件夹中制作文件的副本:

<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 回答