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启动。
我的问题有几个部分:
- 我所经历的是
InstallAllUsers
选项的预期行为吗 - 如果是,我如何确保所有用户都已完全安装我的应用程序
- 是否有必要在本地复制msi,并确保在每个用户都有机会登录之前不会将其删除
之所以会发生这种情况,是因为快捷方式是"广告快捷方式",因此目标框变灰。
更多信息请点击此处。。。
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)属性