Right, I think I have this working to my satisfaction now so I thought I’d share what I learned along the way.
My app installer uses Installer Projects (a free extension in Visual Studio - https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.MicrosoftVisualStudio2015InstallerProjects) to build an msi file that contains everything I need. This was fairly straightforward to set up, mostly dragging the project files I need into the file system layout.
However! This relies on the Visual Studio Runtimes being installed on the device, so I wanted a way to have them install if they were missing. This needs more than a raw msi file, it needs one with a bootstrapper. To make this I used WiX ( http://wixtoolset.org/ ) with a very simple script indeed, using these lines to include the runtimes from the vcredist files that Microsoft handily provide.
<ExePackage SourceFile="redist\vcredist_x86_2010.exe" Name="vc2010 Runtime" InstallCommand="/quiet /norestart" PerMachine="yes" Permanent="yes" />
<ExePackage SourceFile="redist\vcredist_x86_2013.exe" Name="vc2013 Runtime" InstallCommand="/quiet /norestart" PerMachine="yes" Permanent="yes" />
<ExePackage SourceFile="redist\VC_redist.x86_2017.exe" Name="vc2017 Runtime" InstallCommand="/quiet /norestart" PerMachine="yes" Permanent="yes" />
…followed by my msi package from the first part.
This works brilliantly, installing the packages if it needs to and not installing them if it doesn’t.
The need for three runtimes is a bit unfortunate, but these are dragged in to cocos because it links to prebuilt versions of (I think) sqlite3.dll and zlib1.dll, and they need 2013 and 2010. It’s just one of those things where it was easier to include the runtimes than rebuild the libraries without them.
The Wix wrapper means you don’t see the interface from the msi file installer, so the problem with the text writing over my logo can’t be seen any more. It also makes a handy, single msi file containing all the redist files it needs internally, and this can be downloaded and installed no problem.
@smitpatel88 I did look at Inno Setup, and it looks very powerful, but my installer was really quite simple (although it still seemed more difficult to make than it needed to be) and the automatic templates I got with Wix worked well enough for me. I didn’t have to define any dialog boxes or anything. I pretty much just specified an icon, which vc_redists I wanted, and my app installer and it took care of the rest.
Hope this is helpful to people in future. Most of my time was spent finding a suitable installer from the many, many options available so if I can save people some time then that’ll be handy.
@Kalipo, we are in a closed beta at the moment but I can put you down for the next round!