Для создания MSI я использую плагин Gradle SetupBuilder .
После установки мне нужно выполнить бинарный файл из установочного каталога. Но я не могу получить доступ к свойству INSTALLDIR:
msi {
postinst = '''
MsgBox ("INSTALLDIR: " & Session.Property("INSTALLDIR"))
'''
}
Но:
Я обнаружил, что SetupBuilder создает следующие пользовательские действия в файле .wxs:
<CustomAction Execute="deferred" Id="Postinst_Script0" Impersonate="no" Script="vbscript">
MsgBox ("INSTALLDIR: " & Session.Property("INSTALLDIR"))
</CustomAction>
<CustomAction Id="SetPropertiesPostinst_Script0" Property="Postinst_Script0" Value="INSTALLDIR='[INSTALLDIR]';ProductCode='[ProductCode]';INSTANCE_ID='[INSTANCE_ID]'"/>
Затем они называются так:
<InstallExecuteSequence>
<Custom Action="Postinst_Script0" Before="InstallFinalize">NOT Installed OR REINSTALL OR UPGRADINGPRODUCTCODE</Custom>
<Custom Action="SetPropertiesPostinst_Script0" Before="Postinst_Script0"/>
</InstallExecuteSequence>
Согласно документации WiX для CustomAction Element , комбинация Property
и Value
должна привести к Custom Action Type 51 , и это довольно много, где я получаю потерял. Слишком много неизвестных, чтобы понять, только для доступа к простому свойству.
Может кто-нибудь, пожалуйста, помогите мне понять; как я могу получить доступ к собственности?