【问题标题】:How does the InstallAllUsers option work?InstallAllUsers 选项如何工作?
【发布时间】:2012-03-28 21:08:00
【问题描述】:

我有一个 C# 应用程序和一个 Visual Studio (2010) 安装项目。在我的安装项目中,我使用的是InstallAllUsers = True。此外,我的应用程序需要在启动时启动,因此将一个快捷方式添加到User's Startup Folder

所以我以用户 Bob(来自共享)的身份安装了我的应用程序,然后我注销并以用户 Alice 的身份登录。爱丽丝得到一个对话:

您尝试使用的功能位于不可用的网络资源上。

它提供了安装 MSI 的网络路径。因此,基本上,它在 Alice 无法访问的共享上寻找 MSI。如果 Alice 尝试手动启动 Startup 链接,这是可以重复重现的。 但是,Alice 可以直接从安装位置启动 exe,效果很好。

我不完全理解它为什么要寻找 MSI,但我想一个应用程序无法由一个用户另一个用户完全安装是有道理的,因此需要 MSI完成安装。

但如果是这样的话,那么我不明白为什么似乎只在从启动链接启动时才需要 MSI,而不是直接从 exe 启动。

我的问题有几个部分:

  1. InstallAllUsers 选项的行为是否符合我的预期?
  2. 如果是这样,我如何确保为所有用户完全安装我的应用程序?
  3. 是否需要将 msi 复制到本地,并确保在每个用户都有机会登录之前它不会被删除?

【问题讨论】:

  • 我会检查快捷方式文件并查看它指向的位置。当其他用户使用该应用程序时,InstallAllUsers 不会查找 MSI。
  • 两个用户的网络驱动器映射是否相同?
  • @code4life,真的吗?这对我来说是个好消息……不幸的是,这条捷径几乎没有给我任何信息。在属性中,它将Target(灰色)列为我的应用程序名称(不是文件名 - 显示名称)。 Target location 为空白,Start in 设置为我的应用程序 exe 的完整包含路径(不包括 exe,仅包含路径)。
  • @Jetti,不 - 它也不是从网络驱动器安装的。只是一条 UNC 路径。
  • @Eric:如果你手动创建一个新的快捷方式,它会起作用吗?如果是这样,您的问题肯定是原始快捷方式中的错误(可能指向 MSI 之类的)...

标签: c# .net visual-studio-2010 visual-studio-setup-proje


【解决方案1】:

发生这种情况是因为快捷方式是“广告快捷方式”,因此是灰色的目标框。

更多信息在这里...

http://www.advancedinstaller.com/user-guide/advertised-shortcuts.html

当广告的快捷方式启动时,它会验证检查 与关键资源相关联。如果缺少任何内容,它将通过以下方式修复 运行安装包并再次安装所有信息 来自 .msi 文件。

这就是它尝试运行 msi 的原因。

您可以通过阅读这篇文章来关闭广告的快捷方式...

DISABLEADVTSHORTCUTS=1 disables all shortcuts

如果它是由所有用户安装的,那么快捷方式可能希望驻留在所有用户的开始菜单中。 Win 7:C:\ProgramData\Microsoft\Windows\开始菜单。

【讨论】:

  • 优秀的答案 - 这是我的确切问题。
【解决方案2】:

Eric,我建议您查看一下快捷方式文件的内容。您可以使用 Powershell 来做到这一点,并且有一个 SO 链接可以帮助您:

Editing shortcut (.lnk) properties with Powershell

【讨论】:

    猜你喜欢
    • 2018-05-23
    • 1970-01-01
    • 2020-09-24
    • 2011-07-31
    • 2014-05-30
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多