如何为具有不同 Windows 权限的用户控制 post- 安装程序的行为
How to control post-install behavior of a program for users with different Windows permissions
我有一个 Visual Studio 安装程序安装项目,它输出一个 .msi 文件用于在系统上安装。我正在使用 Visual Studio Pro 2013 和 .Net 4.0。
该应用程序主要供非管理员 Windows 7 用户使用。但是,由于用户限制,该程序安装在管理员帐户的计算机上,InstallAllUsers
设置为 True
。
部署项目在桌面和程序菜单中添加快捷方式。
安装完成后,移除安装程序的闪存驱动器,通过管理员帐户的快捷方式手动启动应用程序没有问题。
但是,当使用创建的快捷方式在非管理员帐户上首次启动应用程序时,会遇到问题。这是发生以下错误的地方:
An installation package for the product MyApp cannot be found. Try the installation again using a valid copy of the installation package 'MyApp.msi'.
有趣的一点是,如果我尝试直接从 Program Files 文件夹启动可执行文件,它工作得很好。我什至可以手动创建一个快捷方式,这也能正常工作。最后,如果我确实将程序定向到闪存驱动器中的 .msi 文件,问题就会消失。但这是手动密集型操作,尤其是当它必须在计算机上的多个非管理员帐户上完成时。我希望能够在管理员帐户上安装一次程序然后忘记。
为什么会出现此错误?为什么 Windows 在安装应用程序后寻找 .msi 文件?有没有办法通过更改部署项目中的一些 属性 来避免它?
经过更多研究,我发现 Windows 尝试查找安装文件的原因是因为在 Visual Studio 安装程序安装项目中创建的快捷方式是广告快捷方式(相对于非广告快捷方式).公布的快捷方式让 Windows 通过替换快捷方式指向的任何丢失文件来修复安装(类似问题 here)。
似乎 Visual Studio 安装程序安装项目不支持非广告的快捷方式,尽管可以诱骗它们来安装它们(更多信息 here)。
此外,我的安装项目一定也有问题,因为在启动时 Windows 认为它需要修复。因此,我决定从 Visual Studio 安装程序安装项目切换到 WIX。 WIX 应该可以更好地控制我想要安装的内容,虽然我不打算使用非广告快捷方式,但它支持它们。
我有一个 Visual Studio 安装程序安装项目,它输出一个 .msi 文件用于在系统上安装。我正在使用 Visual Studio Pro 2013 和 .Net 4.0。
该应用程序主要供非管理员 Windows 7 用户使用。但是,由于用户限制,该程序安装在管理员帐户的计算机上,InstallAllUsers
设置为 True
。
部署项目在桌面和程序菜单中添加快捷方式。
安装完成后,移除安装程序的闪存驱动器,通过管理员帐户的快捷方式手动启动应用程序没有问题。
但是,当使用创建的快捷方式在非管理员帐户上首次启动应用程序时,会遇到问题。这是发生以下错误的地方:
An installation package for the product MyApp cannot be found. Try the installation again using a valid copy of the installation package 'MyApp.msi'.
有趣的一点是,如果我尝试直接从 Program Files 文件夹启动可执行文件,它工作得很好。我什至可以手动创建一个快捷方式,这也能正常工作。最后,如果我确实将程序定向到闪存驱动器中的 .msi 文件,问题就会消失。但这是手动密集型操作,尤其是当它必须在计算机上的多个非管理员帐户上完成时。我希望能够在管理员帐户上安装一次程序然后忘记。
为什么会出现此错误?为什么 Windows 在安装应用程序后寻找 .msi 文件?有没有办法通过更改部署项目中的一些 属性 来避免它?
经过更多研究,我发现 Windows 尝试查找安装文件的原因是因为在 Visual Studio 安装程序安装项目中创建的快捷方式是广告快捷方式(相对于非广告快捷方式).公布的快捷方式让 Windows 通过替换快捷方式指向的任何丢失文件来修复安装(类似问题 here)。
似乎 Visual Studio 安装程序安装项目不支持非广告的快捷方式,尽管可以诱骗它们来安装它们(更多信息 here)。
此外,我的安装项目一定也有问题,因为在启动时 Windows 认为它需要修复。因此,我决定从 Visual Studio 安装程序安装项目切换到 WIX。 WIX 应该可以更好地控制我想要安装的内容,虽然我不打算使用非广告快捷方式,但它支持它们。