0

.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」と書いてあるところだけ変えました。他に何を変更する必要がありますか?

4

1 に答える 1

0

UpgradeCodeの GUIDと要素のId属性を変更する必要があります。ProductそれUpgradeCodeが同じアプリケーションであると判断するものです。を変更したらUpgradeCode、再度変更しないでください。変更すると、既存のバージョンを検出して削除できなくなります。属性Idとともに、アプリケーションのバージョンごとに変更する必要がありますVersion

于 2013-01-31T10:38:58.960 に答える