3

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

注意事项:

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

2 回答 2

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" (pre-Vista)

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

“C:\Users\arx\AppData\Local\BlahSoft\BlahApplication”

更新

如果您想要.Net 的这条路径,您需要Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

于 2011-12-30T18:07:46.783 回答
2

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

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

于 2012-01-03T16:49:39.257 回答