【问题标题】:C# setup project - startup shortcut is user specifcC# 安装项目 - 启动快捷方式是用户特定的
【发布时间】:2017-05-02 20:50:38
【问题描述】:

我目前在我的 C# 安装项目中使用本指南,为我的应用程序创建启动快捷方式。 How do I add my program to the users start menu with VS2010 Setup Project?

但问题是,我遵循了本指南,并将我的安装项目属性:InstallAllUsers 设置为 True,但是当我安装应用程序时,我的启动快捷方式是通过在 HKEY_CURRENT_USER 而不是在HKEY_LOCAL_MACHINE,当新用户登录我的机器时导致自动修复,我该如何防止这种情况? 我尝试下载并安装 Orca,并将注册表的根目录编辑为 -1,这确实有效,但感觉像是一个愚蠢的解决方法。 有什么建议吗?

【问题讨论】:

  • 您能解释一下真正与用户相关的内容以及需要在当前用户下安装的内容吗?也许您的软件设计是问题所在。
  • 一些suggestion 或者this 一个,或者this
  • 顺便说一句。哪个用户应该受到注册表更改的影响?仅限当前用户。系统用户,因为安装程序在该帐户中运行。其他用户呢?
  • 所有用户都应该受到这些快捷方式的影响。

标签: c# setup-deployment


【解决方案1】:

要访问用户配置文件/注册表,必须加载它。 事实上,如果用户没有登录,安装程序就没有要更新的配置文件。因此安装程序需要在用户登录时安装当前用户密钥。 如果您在域环境中,则当用户从未登录 PC 时,配置文件不在客户端上。当用户第一次登录时,它会第一次复制到电脑上。

尽量避免在每台计算机安装中创建用户密钥。 让您正在安装的软件执行此操作 - 在用户使用它的上下文中创建密钥。

【讨论】:

  • 那么通过自定义安装程序或通过我的安装项目的注册表部分创建密钥?
  • 当您在每台机器上安装时,当前用户设置绝不是任何设置的一部分。当用户使用它时,让您正在安装的软件在用户上下文中执行注册表。您还可以考虑按用户安装而不是按机器安装。但这会将软件安装到用户配置文件中,而不是在程序文件下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-11
  • 1970-01-01
  • 2011-09-11
  • 2017-06-11
相关资源
最近更新 更多