After some more consideration I think I overlooked something very obvious.
Create a custom very simple downloader app:
And now in define your bootstrapper:
And of course you will need to set up reading your product key from registry into
Create a custom very simple downloader app:
//my_web_setup.exestaticvoid Main(string[] args) { if(args.First() == "/i") { string url = "http://mycompany.com/my_x86.msi"; string file = Web.Download(url); Process.Start("msiexec.exe", "/i \""+ file+"\"").WaitForExit(); } else { Process.Start("msiexec.exe", "/u <your product GUID>").WaitForExit(); } }
var bootstrapper = new Bundle("My Product", new PackageGroupRef("NetFx40Web"), new ExePackage("my_web_setup.exe") { Id = "package1", Name = "MySetup", InstallCommand = "/i", UninstallCommand = "/u" DetectCondition = "MY_PRODUCT_DETECTED", Permanent = true, };
MY_PRODUCT_DETECTED
. For that you will need to use UtilRegistrySearch class (see WixBootstrapper sample).