我有一个32位.NET应用程序,它使用VS 2008中的内置MSI安装项目。
使用GPO按用户部署。这意味着它安装在用户登录的每台计算机上。这样每个用户都可以自动在桌面上获得正确的快捷方式。
我们所有的工作站都是Windows XP(32位),但我们的一些用户也登录到64位的终端服务器(Windows Server 2008)。当他们登录到服务器并单击快捷方式时,msi安装程序将启动(我认为它是自我修复的,将快捷方式更改为Program files (x86)
并且他们可以使用该应用程序。
问题是,当他们再次登录到他们的工作站并且他们点击工作站上的快捷方式时,它会立即失败,因为快捷方式指向Program files (x86)
文件夹,而XP机器上不存在
我希望MSI再次自我修复以修复快捷方式。我可以强迫这种情况发生吗?
答案 0 :(得分:0)
Windows Installer不支持此功能。
仅在Windows Installer检测到缺少资源时才执行自动修复。很可能服务器计算机无法访问某些应用程序文件或注册表项,因此它会执行修复,恰好可以修改快捷方式目标。这基本上是巧合。
由于用户帐户正在漫游(用户可以在多台计算机上使用它),因此应将应用程序安装在用户配置文件文件夹中。 Windows Installer为此提供了AppDataFolder。
使用用户配置文件漫游文件夹将允许您的用户从任何计算机上正确访问应用程序文件。