Wix工具集:从一个安装程序中删除另一个安装程序的内容
我有两名安装人员:Wix工具集:从一个安装程序中删除另一个安装程序的内容,wix,windows-installer,Wix,Windows Installer,我有两名安装人员: 安装程序A安装.dll v1.0.0.0 安装程序B将A.dll更新为v2.0.0.0 当我卸载B时,它不会删除A.dll。版本为2.0.0.0的.dll仍然存在 A.dll(v2.0.0.0)只能从安装程序A中删除 安装程序具有不同的升级代码和组件ID 如何从安装程序B中删除替换的产品内容?两个设置之间共享的文件(两个设置将文件安装到相同的绝对路径)必须保持一个稳定的组件GUID,以允许Windows installer引用计数正常工作。在Windows Installer
如何从安装程序B中删除替换的产品内容?两个设置之间共享的文件(两个设置将文件安装到相同的绝对路径)必须保持一个稳定的组件GUID,以允许Windows installer引用计数正常工作。在Windows Installer中实现这一点的机制是。WiX采用自己的方式处理共享文件,采用方法
不久前我写了一个答案,其中包含了有关合并模块和WiX包含文件的更多信息:
如果需要对不同的应用程序使用不同版本的dll,则应将它们安装到每个应用程序的专用位置,并且它们应具有不同的组件GUID:
ProgramFilesFolder\MyCompanyFolder\MyApp1\MyExe.exe version 1.0.0
ProgramFilesFolder\MyCompanyFolder\MyApp1\MyDll.dll version 1.0.0
ProgramFilesFolder\MyCompanyFolder\MyApp1\MyExe.exe version 2.0.0
ProgramFilesFolder\MyCompanyFolder\MyApp2\MyDll.dll version 2.0.0
或者,您可以将它们安装到单独文件夹中的共享位置,并通过清单正确绑定:
CommonFilesFolder\MyCompanySharedFiles\1.0\MyExe.exe version 1.0.0
ProgramFilesFolder\MyCompanyFolder\MyApp1\MyDll.dll version 1.0.0
CommonFilesFolder\MyCompanySharedFiles\2.0\MyExe.exe version 2.0.0
ProgramFilesFolder\MyCompanyFolder\MyApp2\MyDll.dll version 2.0.0
CommonFilesFolder\MyCompanySharedFiles\2.5\MyExe.exe version 2.5.8
ProgramFilesFolder\MyCompanyFolder\MyApp2\MyDll.dll version 2.0.0
您可以使用单独的MSI部署共享文件,以便在不重新编译主MSI的情况下对其进行更新,也可以使用合并模块将共享文件编译到主MSI中(某种静态链接)
最后,如果共享文件是.NET程序集(但不是),则可以将其安装到GAC:
这里有一个类似的答案:。比上面的描述要详细得多 下面是对Windows Installer组件引用实际工作原理的一个相当全面(但遗憾的是过于详细)的描述:
最后给出了一个答案,并就如何通过使用默认属性和启用自动组件GUID生成来改进和简化WiX文件提出了一些建议。强烈建议您签出:。不要让标题迷惑你,这是一般的WiX建议。我特别建议查看自动组件GUID功能,因为它将帮助您正确分配组件GUID。两个设置之间共享的文件(两个设置将文件安装到相同的绝对路径)必须保持一个,稳定的组件GUID,允许Windows Installer引用计数正常工作。在Windows Installer中实现这一点的机制是。WiX采用自己的方式处理共享文件,采用方法
不久前我写了一个答案,其中包含了有关合并模块和WiX包含文件的更多信息:
如果需要对不同的应用程序使用不同版本的dll,则应将它们安装到每个应用程序的专用位置,并且它们应具有不同的组件GUID:
ProgramFilesFolder\MyCompanyFolder\MyApp1\MyExe.exe version 1.0.0
ProgramFilesFolder\MyCompanyFolder\MyApp1\MyDll.dll version 1.0.0
ProgramFilesFolder\MyCompanyFolder\MyApp1\MyExe.exe version 2.0.0
ProgramFilesFolder\MyCompanyFolder\MyApp2\MyDll.dll version 2.0.0
或者,您可以将它们安装到单独文件夹中的共享位置,并通过清单正确绑定:
CommonFilesFolder\MyCompanySharedFiles\1.0\MyExe.exe version 1.0.0
ProgramFilesFolder\MyCompanyFolder\MyApp1\MyDll.dll version 1.0.0
CommonFilesFolder\MyCompanySharedFiles\2.0\MyExe.exe version 2.0.0
ProgramFilesFolder\MyCompanyFolder\MyApp2\MyDll.dll version 2.0.0
CommonFilesFolder\MyCompanySharedFiles\2.5\MyExe.exe version 2.5.8
ProgramFilesFolder\MyCompanyFolder\MyApp2\MyDll.dll version 2.0.0
您可以使用单独的MSI部署共享文件,以便在不重新编译主MSI的情况下对其进行更新,也可以使用合并模块将共享文件编译到主MSI中(某种静态链接)
最后,如果共享文件是.NET程序集(但不是),则可以将其安装到GAC:
这里有一个类似的答案:。比上面的描述要详细得多 下面是对Windows Installer组件引用实际工作原理的一个相当全面(但遗憾的是过于详细)的描述:
最后给出了一个答案,并就如何通过使用默认属性和启用自动组件GUID生成来改进和简化WiX文件提出了一些建议。强烈建议您签出:。不要让标题迷惑你,这是一般的WiX建议。我特别建议查看自动组件GUID功能,因为它将帮助您正确分配组件GUID。在我的答案底部添加了另一个链接。在我的答案底部添加了另一个链接。