使用动态实例名称安装MSI的多个实例

Max*_*Max 10 windows-installer wix msiexec

我们的产品有一个MSI安装程序(用WiX编写),基本上将一些文件复制到文件夹c:\ ourproduct中,并安装一个Windows服务"ourwindowsservice".

我们希望添加对该服务的多个实例的支持,并且应该可以彼此独立地安装/卸载它们.与SQL Server类似,每个实例都应该有一个名称,可以作为命令行参数传递给MSI.

示例:实例"A"=>将文件复制到"c:\ ourproductA",将服务安装为"ourwindowsserviceA"实例"B"=>将文件复制到"c:\ ourproductB",将服务安装为"ourwindowsserviceB"...

任何的想法?

实例转换似乎需要一组预定义和预先命名的实例.

谢谢

Chr*_*ter 9

ServiceInstall表的名称列是格式化类型.这意味着您可以在运行时使用属性来驱动名称.

几年前,我写了一篇关于多个实例安装程序的博客文章.在评论中有人询问了动态数量的实例,我谈到了需要做什么.基本上,您必须编写一个具有UI的bootstrapper.exe,并且可以驱动创建具有唯一属性的转换.使用C#和WiX/DTF为您的MSI Interop实际上是非常可能的.我从来没有觉得有必要实际做到这一点.我对Product,Product-1 ...产品-15非常满意,你就完成了.ShortCuts必须通过自定义操作完成,因为它们不支持Formatted类型,但INSTALLDIR可以变形,ServiceNames支持Formatted.