WiXインストーラーのメジャーアップグレードでサービスの設定(資格情報やその他のオプション)が失われないようにしようとしています。 私がアドバイスhereに続いて、各アップグレードに私の資格情報やその他のサービスの設定を失う、私はWiXのメジャーアップグレードでサービスの設定が失われないようにする
<InstallExecuteSequence>
<DeleteServices>NOT UPGRADINGPRODUCTCODE</DeleteServices>
</InstallExecuteSequence>
を使用しようとしている。しかし、私のサービスがまだアップグレードに再インストールされています。
ログには、自分の状態が1回だけ尊重されているように見えます。私は
MSI (s) (6C:E8) [16:52:53:944]: Skipping action: DeleteServices (condition is false)
を参照し、百、数行後に、私は第二DeleteServicesは私の問題であるように私には見える
MSI (s) (6C:A4) [16:52:54:873]: Doing action: DeleteServices
を参照してください。誰が私にその2番目のものを抑制することができるか、私がそれを引き起こすためにやっていることを教えてもらえますか?
私はWiXツールセット3.7を使用しています。 ここに私のコードは、guidsは明らかに削除されます。
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id='*' Name='My Product' Language='1033'
Version='1.0.6' Manufacturer='Me' UpgradeCode='PUT-GUID-HERE' >
<Package Description='My Product' Platform='x86' Id='*'
Manufacturer='Me' InstallerVersion='200' Compressed='yes' />
<MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed. Setup will now exit."/>
<InstallExecuteSequence>
<DeleteServices>NOT UPGRADINGPRODUCTCODE</DeleteServices>
</InstallExecuteSequence>
<Media Id='1' Cabinet='product.cab' EmbedCab='yes' />
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<Directory Id='AgentDir' Name='Agent'>
<Component Id='Binaries' Guid='PUT-GUID-HERE' Win64='no'>
<File Id='AgentExe' Source='../MyProduct/MyExe.exe' KeyPath='yes' ProcessorArchitecture='x86' />
<ServiceInstall Id="TheServiceInstall" Description="[ProductName]" EraseDescription="no" DisplayName="[ProductName]" ErrorControl="normal" Interactive="no" Name="[ProductName]" Start="auto" Type="ownProcess" Vital="yes">
</ServiceInstall>
</Component>
</Directory>
</Directory>
</Directory>
<Feature Id='CompleteInstall' Title='My Product' Level='1'>
<ComponentRef Id='Binaries' />
</Feature>
</Product>
</Wix>
ありがとうございます!
ありがとう、私はそれを2つの別々のプロセスとは考えていませんでした。 古い製品にはDeleteServicesに 'NOT UPGRADINGPRODUCTCODE'という条件があります。私はどこにでも展開していない、私はまだそれをテストしています。だから私の古い製品は私の新製品と同じですが、私は製品バージョンのビルドを増やします。 また、「Skipping action:DeleteServices」がログに最初に表示され、「Doing action:DeleteServices」が2番目に表示されます。だから私は実際に古い製品のアンインストールが私が望むことをやっていると仮定します。それはサービスを削除する新製品のインストールです。 – Brian