WiX 2: I would definitely migrate any WiX 2.0 sources to WiX 3 or WiX 4. I use WiX 3 only. I think you can solve this particular problem by putting your WiX source on a diet - rather than delve too deep in the actual subject matter / problem. Dealing with 8.3 file names is just a waste of time if you ask me. Avoid if you can. I feel sorry for developers who have to deal with all this old, legacy stuff in Windows.
Simplify WiX Markup: In other words I think this problem can be "removed rather than fixed". So bear with me: I like to slim my WiX source files down to the bare necessities and allow as many fields as possible to be auto-magically added by the compiler (candle.exe
) and linker (light.exe
). This is possible to do because a lot of fields are just "boilerplate" or redundant and will always "change together". They might as well be auto-generated.
Here is a quick description of how you can remove superfluous XML attributes in newer WiX sources: Syntax for guids in WIX? (recommended read - should be quick).
The gist of it is that you can do this:
<Component>
<File Source="..\File.dll" />
</Component>
instead of the older, more elaborate:
<!-- Sample guid below, do not copy paste -->
<Component Id="File.dll" Guid="{12345678-1234-1234-1234-123456789ABC}">
<File Id="File.dll" Name="File.dll" KeyPath="yes" Source="..\File.dll" />
</Component>
All the missing attributes will be auto-populated by WiX - making it easier to implement any changes in the compiler and linker that is picked up by your "slimmer source". Should an attribute be needed - for some reason - you will be told to add it by the compiler / linker / documentation.
Solution?: Accordingly, please try to remove the whole Name attribute
and see if this solves your problem. I would remove as many other fields as possible as well (should make future migration easier - maybe).