ユーザ定義のパスにインストールを行ったときに、wixベースのインストーラをアンインストールしたり、デフォルトディレクトリ以外のディレクトリにアプリケーションをアップグレードしたりします。wix 3.5ユーザ指定のディレクトリからのアンインストール/アップグレード
私はここhttp://wix.tramontana.co.hu/tutorial/getting-started/where-to-install述べたステップを追ってきたし、これは
<Upgrade Id="{UPGRRADE-GUID}">
<UpgradeVersion Minimum="$(var.ProductVersion)" Property="NEWERPRODUCTFOUND" OnlyDetect="yes" IncludeMinimum="yes" />
<UpgradeVersion Minimum="0.0.0" Maximum="$(var.ProductVersion)" Property="PREVIOUSVERSIONSINSTALLED" IncludeMinimum="yes" />
</Upgrade>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.programDir)">
<Directory Id="INSTALLDIR" Name="$(var.InstallDir)"/>
</Directory>
</Directory>
<!-- Find previous installation -->
<Property Id="INSTALLDIR">
<RegistrySearch Id="FindInstallLocation"
Root="HKLM"
Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[PREVIOUSVERSIONSINSTALLED]"
Name="InstallLocation"
Type="raw" />
</Property>
<InstallExecuteSequence>
<FindRelatedProducts Before="LaunchConditions"/>
<AppSearch After="FindRelatedProducts"/>
<RemoveExistingProducts Before="InstallInitialize" />
</InstallExecuteSequence>
私の機能は、私はARPINSTALLLOCATIONを設定
<DirectoryRef Id="INSTALLDIR">
<Directory Id="Feature1.Dir" Name="$(var.AddInName)">
<Component Id = "Addin" Guid="COMP-GUID">
</Directory>
</DirectoryRef>
<Feature Id="FeatureOne" Level="1" ConfigurableDirectory="INSTALLDIR" Title="$(var.ServiceDisplayName)" Description="$(var.ServiceDescription)" Absent="allow">
<ComponentRef Id="AddIn"/>
</Feature>
次のコードを使用してプロパティにアクセスするには、メインProduct.wxsに今私のWiXのコードですアップグレードについてのmindcapers wikiのプロパティ。
問題:アンインストールとアップグレードの間、INSTALLDIR C:¥Program Files¥Myアプリケーションのデフォルトパスが引き続き選択されます。ログを見ると、INSTALLDIRがCostfinalizeのデフォルトパスに設定されていますが、Feature1.Dirは実際のアンインストールパスであるレジストリパスに設定されています。
この場合、誰かが何をすべきか提案できますか?レジストリプロパティが実際に設定されているappsearchではなく、costfinalizeの後でカスタムアクションを実行する必要がありますか?
よろしく、 ラジは
私はコマンドラインでINSTALLDIRを渡すとアンインストールが正常に動作します。 – rui