我应该将应用程序安装到哪个目标文件夹,从不需要uac提升?

时间:2011-12-30 17:49:04

标签: c# .net wix windows-installer user-profile

我有一个应用程序,我正在为它安装安装程序。假设我希望安装不需要提升,我希望应用程序本身永远不需要提升,我希望应用程序的更新程序(内置)永远不需要提升我应该在哪里安装应用程序?

注意事项:

  1. 此应用程序未签名。
  2. 我很好,如果每个用户都必须在他们的个人资料下单独安装它。
  3. 我可以在安装中使用注册表并实现相同的目标吗?
  4. 它唯一的写入是设置/配置文件。
  5. .NET 4应用。

2 个答案:

答案 0 :(得分:3)

常见的选择是SHGetFolderPath(CSIDL_LOCAL_APPDATA)(Win2K及更高版本)或SHGetKnownFolderPath(FOLDERID_LocalAppData)(Vista及更高版本)返回的本地appdata文件夹。

此返回路径类似于:

  • “C:\ Users \ arx \ AppData \ Local”(Vista及更高版本)
  • “C:\ Documents and Settings \ arx \ Local Settings \ Application Data”(Vista之前)

在此处创建公司名称和应用程序文件夹是正常的,因此您将完成以下路径:

“C:\用户\ ARX \应用程序数据\本地\ BlahSoft \ BlahApplication”

<强>更新

如果您想从.Net获取此路径,则需要Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

答案 1 :(得分:2)

你的问题被标记为WIX和.NET;两者对于已知文件夹路径具有不同的语法。获取当前用户应用程序文件夹的.NET命令是Environment.GetFolderPath(Environment.SpecialFolder.Programs)

如果要安装到WIX路径,它具有每个已知文件夹的预定义属性; [ProgramFilesFolder]是32位应用程序文件夹,[ProgramFiles64Folder]是64位文件夹。