InstallAllUsers选项是如何工作的

本文关键字:工作 何工作 选项 InstallAllUsers | 更新日期: 2023-09-27 18:29:14

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

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

您尝试使用的功能所在的网络资源不可用。

它提供安装MSI的网络路径。所以,基本上,它是在寻找一个共享的MSI,爱丽丝没有访问权限。如果爱丽丝试图手动启动启动链接,这是重复可复制的然而,Alice可以直接从安装位置启动exe,这很好

我不完全理解它为什么要寻找MSI,但我想一个应用程序不能由一个用户完全安装到另一个用户,所以需要MSI来完成安装是有道理的。

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

我的问题有几个部分:

  1. 我所经历的是InstallAllUsers选项的预期行为吗
  2. 如果是,我如何确保所有用户都已完全安装我的应用程序
  3. 是否有必要在本地复制msi,并确保在每个用户都有机会登录之前不会将其删除

InstallAllUsers选项是如何工作的

之所以会发生这种情况,是因为快捷方式是"广告快捷方式",因此目标框变灰。

更多信息请点击此处。。。

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

当发布的快捷方式启动时,它将验证检查与关键资源相关联。如果有丢失,它将通过运行安装包并重新安装所有信息来自.msi文件。

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

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

DISABLEADVTSHORTCUTS=1禁用所有快捷方式

如果它是所有用户安装的,那么快捷方式可能希望位于所有用户的"开始"菜单中。Win 7:C:''ProgramData''Microsoft''Windows''Start Menu。

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

使用Powershell 编辑快捷方式(.lnk)属性