Я использую WiX 3.10. У меня есть особый сценарий, когда перед условиями запуска выполняются некоторые пользовательские действия, потому что во время условий запуска я оцениваю определенные свойства, которые устанавливаются во время этих пользовательских действий. Однако в условиях запуска я также должен проверить версию .Net Framework. Проблема заключается в том, что если у меня нет необходимого .Net Framework, настраиваемое действие выполняется до того, как оно достигает условия запуска, и сообщение не отображается для пользователя.
Могу ли я выполнить условия запуска в определенном порядке или мне нужно изменить пользовательское действие, чтобы выполнить ПОСЛЕ условий запуска? Мне нужна помощь. Не эксперт в WiX.
Код для справки:
<!--Need to execute this first-->
<PropertyRef Id="NETFRAMEWORK35" />
<PropertyRef Id="WIX_IS_NETFRAMEWORK_46_OR_LATER_INSTALLED" />
<Condition Message="This application requires .NET Framework 4.6. Please install the .NET Framework then run this installer again.">
<![CDATA[Installed OR (NETFRAMEWORK35 = "#1" AND WIX_IS_NETFRAMEWORK_46_OR_LATER_INSTALLED)]]>
</Condition>
<!--Need to execute this second. It is execute first through custom action-->
<PropertyRef Id="SQLSERVERMISSINGREQUIREDSERVICES"/>
<Condition Message="Please install the following SQL Server services for the SQL Server instance: [SQLSERVERMISSINGREQUIREDSERVICES]. Then run this installer again.">
<![CDATA[Installed or NOT SQLSERVERMISSINGREQUIREDSERVICES]]>
</Condition>
<!--Need to execute this third. It is execute second through custom action-->
<PropertyRef Id="SQLSERVERMAJORVERSION"/>
<PropertyRef Id="SQLSERVERMINORVERSION" />
<Condition Message="The GSL server requires a 2008 R2, 2012, or 2014 instance named 'GSLSQL' to be installed on the local server.">
<![CDATA[Installed OR (SQLSERVERMAJORVERSION = "#10" AND SQLSERVERMINORVERSION >= "#50") OR SQLSERVERMAJORVERSION = "#11" OR SQLSERVERMAJORVERSION = "#12"]]>
</Condition>