我将一个 .NET/WiX 产品(“ SparkleShare ”)分叉成一个完全不同的产品(“ CmisSync ”)。
如果他们愿意,用户应该能够安装这两种产品。
不幸的是,当安装了一个时,另一个无法安装:
此产品的另一个版本已安装此版本的安装无法继续。要配置或删除此产品的现有版本,请使用控制面板上的添加/删除程序
我必须改变什么?
它是 Visual C# 2010 Express 中的 .NET 4.5 多项目解决方案,由 WiX 生成的安装程序。
我想经常在项目之间共享代码,所以源代码必须尽可能保持相同。出于这个原因,许多“SparkleShare”字符串仍然存在,这是我故意的,我只想在必要的地方进行修改。
这是我认为SparkleShare.wxs有趣的部分:
<Product Name='CmisSync' Id='184950D5-67F6-4D06-9717-7E2F1607A7B0' UpgradeCode='D3DF1D99-87F5-47A7-A349-863DD6E4B73A'
Language='1033' Codepage='1252' Version='0.8.1' Manufacturer='SparkleShare'>
<Package Id='*' Keywords='Installer' Description="CmisSync Setup" Manufacturer='CmisSync'
InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' />
<Media Id='1' Cabinet='SparkleShare.cab' EmbedCab='yes' DiskPrompt='SparkleShare CAB' />
<Property Id='DiskPrompt' Value="SparkleShare Bundle CAB Installation" />
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<Directory Id='INSTALLDIR' Name='CmisSync'>
<Component Id='SparkleShare.exe' Guid='0DA582D5-4ABE-4251-9F62-E7DEA76F10E1'>
<File Id='SparkleShare.exe' Name='SparkleShare.exe' Source='!(wix.root)\bin\SparkleShare.exe' KeyPath='yes' DiskId='1' />
我只改变了写“CmisSync”的地方。我还必须改变什么?