Question

I forked a .NET/WiX product ("SparkleShare") into a completely different product ("CmisSync").

Users should be able to install both products if they wish.

Unfortunately, when one is installed then the other can not be installed:

Another version of this product is already installed Installation of this version cannot continue.To configure or remove the existing version of this product, use Add/Remove program on the Control Panel

What must I change?
It is a .NET 4.5 multi-projects solution in Visual C# 2010 Express, WiX-generated installer.

I want to share code often between projects, so the source code must stay as identical as possible. For this reason, many "SparkleShare" strings remain, that is on purpose, I want to modify only where necessary.

Here is what I think is the interesting part of 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' />

I have only changed the places where "CmisSync" is written. What else MUST I change?

Était-ce utile?

La solution

You will need to change the guid's in the UpgradeCode and the Id attributes in the Product element. The UpgradeCode is what determines that it is the same application. Once you have changed the UpgradeCode, do not change it again otherwise it will not be able to detect and remove existing versions. The Id needs to be changed per version of your application along with the Version attribute

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top