可以避免在我的应用程序的Program Files文件夹中读取文本文件的提升权限?

时间:2013-02-15 13:39:57

标签: c# wpf windows-8 wix uac

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

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

以下是代码:

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

是否有一种简单的解决方法,以避免需要以管理员身份运行,没有更改安装程序以将文件放入AppData

2 个答案:

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