У меня проблема с DLL настраиваемых действий WiX и C ++: я хочу получить местоположение установки, указанное в файле .wxs, из dll настраиваемого действия, я использую WcaGetTargetPath, но этот API не работает. Кто-нибудь есть идеи, как этого добиться?
Файл WiX:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.PlatformProgramFilesFolder)" Name="PFiles">
<Directory Id="CompanyDir" Name="ABC">
<Directory Id="PCMINSTALLDIR" Name="ClientMonitor">
<Directory Id="STDSCIPTSDIR" Name="standard_scripts">
</Directory>
<Directory Id="CSTMSCIPTSDIR" Name="custom_scripts">
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
.....
<CustomAction Id="ChangeConfig"BinaryKey="PcmConfig"DllEntry="ModifyConfigFile"Execute="deferred"Return="check"Impersonate="no"HideTarget="no" />
<InstallExecuteSequence>
<Custom Action="ChangeConfig" Before="InstallFinalize" />
</InstallExecuteSequence>
Custom Action method:
LPWSTR pwzTargetPath = NULL;
hr = WcaGetTargetPath(L"PCMINSTALLDIR", &pwzTargetPath);
ExitOnFailure(hr, "Failed to get the PCM installation path.");
Задача ещё не решена.