2009-03-02 12 views
2

コンポーネントは変更されていませんが、コンポーネントが変更されるとアップグレードが失敗し、ユーザーが手動でアンインストールして再インストールする必要がある場合は正常に動作します。Wixメジャーアップグレード、どうしたの?

一部抜粋:

何ブートストラップのチェックにだ
 <Component Id="InstalledRegistry" Guid="SOMEGUID-0a17-4c6b-983d-8f3feb3a7724"> 
     <RegistryKey Id="InstalledRegKey" Root="HKMU" Key="SOFTWARE\MyCompany\Client" Action="createAndRemoveOnUninstall"> 
      <RegistryValue Name="Version" Type="string" Value="!(bind.FileVersion.ClientEXE)" KeyPath="yes"/> 
     </RegistryKey> 
     </Component> 

を:また

<Product Id="*" Name="My Application" Language="1033" Version="!(bind.FileVersion.ClientEXE)" Manufacturer="My Company" UpgradeCode="MYGUID-b94a-44eb-8e92-9286f1d89bbd"> 
    <Package Id="*" Description="My Installer" Comments="Copyright My Company 2008" InstallerVersion="200" Compressed="yes" /> 
    <Upgrade Id="MYGUID-b94a-44eb-8e92-9286f1d89bbd"> 
     <UpgradeVersion Language="1033" Property="UPGRADEFOUND" Minimum="0.0.0.0" Maximum="99.99.99.99" IncludeMinimum="yes" IncludeMaximum="yes" /> 
    </Upgrade> 


    <InstallExecuteSequence> 
      <RemoveExistingProducts Before="InstallInitialize" /> 
    </InstallExecuteSequence> 

には、次のレジストリキーといくつかの問題は、時にはアンインストールで削除しないと、私は理由を理解していない持っています"REINSTALL = ALL REINSTALLMODE = vamus"を指定してmsiexecを起動するかどうかを知っているので、アンインストールしてもレジストリキーが削除されなかった場合、セットアップはアップグレードを試みてサイレントモードで失敗します。他のいくつかの問題が唯一のいくつかのファイルが更新されると、その後があった:

は、任意のより多くの情報が


編集を必要とするなら、私に教えてください。 RemoveExistingProductsをAfter = "InstallValidate"に変更し、それを解決しました。変更されたファイルをアップグレードするのではなく、以前のインストールを完全に削除するので、少し遅くなります(これは私にとっては適切に検出されなかったようですが)。

答えて

3

FWIWでは、メジャーアップグレードを実行するためにコマンドライン引数は必要ありません。

コードは大丈夫ですが、バージョン番号が変更されていない可能性がありますか? (Windowsインストーラーは、4つの部分からなるバージョン番号を使用している場合、3つの最初の部分だけを気にします)

+0

REINSTALL = ALLとREINSTALLMODEはメジャーアップグレードには必要ありません。私はそれが問題かもしれないと思う。確認後に受け入れます – Davy8

関連する問題