プロパティを使用してレジストリ エントリの値を設定しています。これは、最初のインストール時にデフォルト値があり、アップグレード時に現在のレジストリ値が使用されるようにするためです。
ユーザーのローカル フォルダーとプログラム フォルダーへのパスを設定するプロパティが必要です。以下のコードが間違っていることはわかっていますが、どうすればよいですか。少なくとも Type 51 カスタム アクションを実行したいと考えていますが、ドキュメントを理解していません。
関連する部分は3つあると思います
<InstallExecuteSequence>
<Custom Action="SetUserFolder" Before="InstallInitialize"/>
<Custom Action="SetInstallFolder" Before="InstallInitialize"/>
</InstallExecuteSequence>
カスタム アクション
<CustomAction Id="SetUserFolder" Property="UserFolder" Value="[%USERPROFILE]" />
<CustomAction Id="SetInstallFolder" Property="P_InstallFolder" Value="[%PROGRAMFILES]" />
プロパティ。
<Property Id="P_MyAPPPATH" Value="[P_InstallFolder]MyApp\">
<RegistrySearch Id="S_MyAppPath" Type="raw" Root="HKCU" Key="Software\MyApp\Settings" Name="MyAppPath"/>
</Property>
<Property Id="P_MyAPPDB" Value="[UserFolder]\MyApp\MyAppData\">
<RegistrySearch Id="S_MyAPPDB" Type="raw" Root="HKCU" Key="Software\MyApp\Settings" Name="MyAppdb"/>
</Property>