Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix 由两个不同的MSI安装程序安装的应用程序_Wix_Windows Installer - Fatal编程技术网

Wix 由两个不同的MSI安装程序安装的应用程序

Wix 由两个不同的MSI安装程序安装的应用程序,wix,windows-installer,Wix,Windows Installer,我有一个应用程序,将由两个不同的MSI安装程序安装,INSTALLER1和INSTALLER2。 因此,可以通过保持相同的GUID和路径来实现这一点。 用例1。由安装程序1安装的应用程序,在安装程序2卸载一段时间后,它是否会通知安装程序1它已被卸载? 2.由INSTALLER1安装的应用程序,在经过一段时间由INSTALLER2升级后,是否会通知INSTALLER1? 或者确实需要检查其他事项,例如升级代码、包代码、组件ID是否应相同(除了GUID) 任何提示都会有帮助我找到了另一篇文章,我想这

我有一个应用程序,将由两个不同的MSI安装程序安装,INSTALLER1INSTALLER2。 因此,可以通过保持相同的GUID路径来实现这一点。 用例1。由安装程序1安装的应用程序,在安装程序2卸载一段时间后,它是否会通知安装程序1它已被卸载? 2.由INSTALLER1安装的应用程序,在经过一段时间由INSTALLER2升级后,是否会通知INSTALLER1? 或者确实需要检查其他事项,例如升级代码、包代码、组件ID是否应相同(除了GUID)


任何提示都会有帮助

我找到了另一篇文章,我想这也是你的文章。

您使用术语“产品”的方式令人困惑。 在其他post-you-reference合并模块中,这些模块是按组件排列的文件集合。合并模块将被另一个安装包使用。合并模块没有升级代码,也没有包代码或产品代码

如果我理解您的问题,如果您在合并模块中正确配置了组件,那么无论有多少产品安装了您的应用程序,组件规则都将生效。不需要“通知”

因此,假设您创建了合并模块,并将文件安装到C:\Program files\MyGreatApp。 MSI_1和MSI_2使用合并模块1.0.0。 客户安装了MSI_2,此时您的组件信息将写入注册表,并指示MyGreatApp组件的版本为1.0.0 稍后,客户安装MSI_1,此时安装时,它会注意到MyGreatApp组件已安装且版本为1.0.0,此时将不会安装该组件,因为该组件已存在于系统中。 假设您发布了MyGreatApp v2.0.0,MSI_2使用了这个合并模块。 如果客户安装MSI_1,则会安装MyGreatApp v1.0.0 如果客户以后安装了MSI_2,安装会看到组件已安装,但版本为1.0.0,因此根据组件规则,它有一个更新的版本

因此,从安装程序的问题来看,这应该遵守组件规则


你要问的问题是,当你的应用程序从v1.0.0升级到v2.0.0时,会不会导致代码中断。如果您的文件与主MSI分开编译,则应设置所有文件,但是,如果您的文件在主应用程序中用作引用,并且这是一个使用强名称密钥文件的.NET程序集,则会出现dependency not found错误

我有个问题。您在这里使用术语“installer”,但不知何故您将“installer”与Windows installer(MSI)软件包区分开来。你能澄清一下你的问题吗?我不知道你说的“产品”是什么意思。“产品”是单个MSI安装程序中的组件吗?您是否将MSI安装程序捆绑在一个类似InstallShield套件的包装器中,以安装MSI?我忘了提到,在合并模块中配置组件时,必须确保它们标记为共享。这样,目标系统将记录已安装组件的次数,并且文件将一直保留到组件计数为零。感谢您的帮助解答,我只是想知道它升级成功,但为什么它无法卸载具有相同GUID、路径和标记“shared”的我的应用程序。