我有一个 C# 应用程序和一个 Visual Studio (2010) 安装项目。在我的安装项目中,我使用InstallAllUsers = True
. 此外,我的应用程序需要在启动时启动,因此将一个快捷方式添加到User's Startup Folder
.
因此,我以用户 Bob(来自共享)的身份安装了我的应用程序,然后以用户 Alice 的身份注销并登录。爱丽丝得到一个对话,说:
您尝试使用的功能位于不可用的网络资源上。
它提供了安装 MSI 的网络路径。因此,基本上,它在 Alice 无法访问的共享上寻找 MSI。如果 Alice 尝试手动启动 Startup 链接,这是可以重复重现的。 但是,Alice 可以直接从安装位置启动 exe,效果很好。
我不完全理解它为什么要寻找 MSI,但我想一个用户无法为另一个用户完全安装应用程序是有道理的,因此需要 MSI 才能完成安装。
但如果是这种情况,那么我不明白为什么只有在从启动链接启动时才需要 MSI,而不是直接从 exe 启动。
我的问题有几个部分:
- 我正在经历该
InstallAllUsers
选项的预期行为吗? - 如果是这样,我如何确保我的应用程序已为所有用户完全安装?
- 是否有必要在本地复制 msi,并确保在每个用户有机会登录之前它不会被删除?