Open pfusik opened 6 months ago
This is also affecting my other project: https://asap.sourceforge.net
The problem was with the following code:
<?define MUTEXCONDS=(($recoilwin.ext=3 OR ($recoilwin.ext=-1 AND ?recoilwin.ext=3)) AND ($xnview_recoil.ext=3 OR ($xnview_recoil.ext=-1 AND ?xnview_recoil.ext=3)));
(($recoilwin.ext=3 OR ($recoilwin.ext=-1 AND ?recoilwin.ext=3)) AND ($xnviewmp64.ext=3 OR ($xnviewmp64.ext=-1 AND ?xnviewmp64.ext=3) OR $imagine.ext=3 OR ($imagine.ext=-1 AND ?imagine.ext=3)));
(($recoilwin.ext=3 OR ($recoilwin.ext=-1 AND ?recoilwin.ext=3)) AND ($imagine64.ext=3 OR ($imagine64.ext=-1 AND ?imagine64.ext=3)));
(($xnview_recoil.ext=3 OR ($xnview_recoil.ext=-1 AND ?xnview_recoil.ext=3)) AND ($xnviewmp64.ext=3 OR ($xnviewmp64.ext=-1 AND ?xnviewmp64.ext=3)));
(($xnview_recoil.ext=3 OR ($xnview_recoil.ext=-1 AND ?xnview_recoil.ext=3)) AND ($imagine.ext=3 OR ($imagine.ext=-1 AND ?imagine.ext=3)));
(($xnview_recoil.ext=3 OR ($xnview_recoil.ext=-1 AND ?xnview_recoil.ext=3)) AND ($imagine64.ext=3 OR ($imagine64.ext=-1 AND ?imagine64.ext=3)));
(($xnviewmp64.ext=3 OR ($xnviewmp64.ext=-1 AND ?xnviewmp64.ext=3)) AND ($imagine.ext=3 OR ($imagine.ext=-1 AND ?imagine.ext=3) OR $imagine64.ext=3 OR ($imagine64.ext=-1 AND ?imagine64.ext=3)));
(($imagine.ext=3 OR ($imagine.ext=-1 AND ?imagine.ext=3)) AND ($imagine64.ext=3 OR ($imagine64.ext=-1 AND ?imagine64.ext=3)))?>
...
<?foreach MUTEXCOND in $(var.MUTEXCONDS)?>
<Publish Dialog="MyCustomizeDlg" Control="Next" Event="SpawnDialog" Value="MyManyAssociationsDlg" Order="3" Condition="$(var.MUTEXCOND)" />
<?endforeach?>
Removing the newlines from the MUTEXCONDS
define avoids the runtime error.
It's not a problem with <?define
. In my other project the newlines were directly in <?foreach
.
MSI doesn't like the extraneous newlines. This error is caught by running validation (wix msi validate
if you're building with wix.exe) so taking this out of WiX v5 in favor of deeper parser thinking (e.g,. GetAttributeCondition
).
WiX Version
4.0.4
.NET or MSBuild or Visual Studio Version
8.0.200
HeatWave Version
building from command line
Windows Version
Win11 23H2
Repro Repo
No response
Repro Steps
recoil-6.4.1-win64.msi
from https://sourceforge.net/projects/recoil/files/recoil/6.4.1/Actual Result
3.
Expected Result
Acknowledgements