2016-09-21 35 views
1

このフォーラムや他のフォーラムのトピックのほとんどの回答を試しましたが、まだこの問題があります。Wixインストーラが以前のバージョンを上書き(アップグレード)してダウングレードを許可しないようにするには

バンドルのバージョンを更新したいのですが、インストーラをビルドしてインストールすると、以前のインストールがアップグレードされ、 "プログラムとファイル"に2つのレコードが作成されなくなります。

私はProduct.wxsで次のコードを使用しています。

<Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0" Manufacturer="miro" UpgradeCode="5ba49b49-25c4-47c0-82da-12bf5310af58"> 
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 

<MajorUpgrade AllowDowngrades="no" AllowSameVersionUpgrades="yes" IgnoreRemoveFailure="no" DowngradeErrorMessage="loc.NewerVersionInstalled" Schedule="afterInstallInitialize"/> 
    <MediaTemplate /> 

    <Feature Id="ProductFeature" Title="SetupProject1" Level="1"> 
     <ComponentGroupRef Id="ProductComponents" /> 
    </Feature> 

</Product> 

<Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="INSTALLFOLDER" Name="SetupProject1" /> 
     </Directory> 
    </Directory> 
</Fragment> 

<Fragment> 
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 
     <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. --> 
     <Component Id="ProductComponent"> 
    <File Id="file_Exefile" Source="..\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe"> 

    </File> 
     </Component> 
    </ComponentGroup> 
</Fragment> 

私もインストーラのプロセスとそのPRODUCTVERSIONの性質に基づいて自分自身の更新ロジックを書いて検討していますが、考慮すべきあまりにも多くの例があります。

このProduct.wxsに何が間違っているか教えていただけますか?修正できますか?

ありがとうございました。

敬具、あなたはあなたの製品セクションへのアップグレードセクションを追加する必要が エフゲニーDyulgerov

答えて

0

<Upgrade Id='5ba49b49-25c4-47c0-82da-12bf5310af58'> 
    <UpgradeVersion OnlyDetect='no' Property='ISUPGRADE' 
         Minimum='0.0' IncludeMinimum='yes' 
         Maximum='1.0.0.0' IncludeMaximum='no' />  
</Upgrade> 

また

(スタートメニュー内)のWiXドキュメントCHMチェックアウトUpgrades and Modularization on Firegiantは非常に有用です。

2

メジャーアップグレードを妨げる可能性のあることがいくつかあります。

最初の3つのフィールドで製品のバージョンを増やした方が、メジャーアップグレードのほうが正常です。これは正常なメジャーアップグレードロジックです。

あなたの現在のUpgradeCodeが古い製品と同じであることは明らかではありません。

以前の製品のインストールスコープがperUserの場合、Windowsインストーラによってクロスコンテキストメジャーアップグレードが許可されないため、メジャーアップグレードは機能しません。

インストールを冗長なログで行い、FindRelatedProductsがすべて発生していないか調べます。複数のバージョンがありますが、アップグレードインストールのバージョンが以前にインストールされた製品を検出したかどうかを確認します。

関連する問題