我有一个使用WiX安装程序安装的WPF应用程序。我正在将所有应用程序数据写入AppData文件夹 - 工作正常(好吧,或多或少)。安装程序需要提升权限(写入Program Files,我猜?)。
应用程序打包了几个文本文件,需要阅读。我目前将它们放在Program Files中与.exe相同的文件夹中,但除非我以管理员身份运行,否则应用程序无法读取它们。
以下是代码:
using (FileStream file = new FileStream("file.txt", FileMode.Open))
{
using (StreamReader reader = new StreamReader(file))
{
. . .
}
}
是否有一种简单的解决方法,以避免需要以管理员身份运行,没有更改安装程序以将文件放入AppData ?
答案 0 :(得分:2)
您还可以尝试更改文件的权限:
<File Id="file.txt"
Name="file.txt"
Source="$(var.MyApplication.TargetDir)file.txt">
<Permission GenericAll="yes" User="Everyone"/>
</File>
答案 1 :(得分:1)
最好的选择可能是告诉wix在App Data Folder中复制文件:
<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>