Search code examples
wixburn

Binding variable value to an MsiPackage attribute


I have a project that contains a custom ui, a couple msi packages and a bootstrapper that chain these packages, i want to define the MsiPackage attribute "DownloadUrl" on startup, to a variable that has been passed from the custom ui , something like this:

Engine.StringVariables["packageUrl"] = "url fetched from remote server";
<MsiPackage
   id="remotePackage"
   DownloadUrl ="[packageUrl]">
</MsiPackage>

when i checked the log i see that packageUrl is well defined, but it's value isn't passed to DownloadUrl, instead it thinks that the value is the string [packageUrl].

Any thoughts on this ?


Solution

  • To change the DownloadUrl at runtime, call IBootstrapperEngine::SetDownloadSource.

    Engine.SetDownloadSource("remotePackage", "remotePackage", "url fetched from remote server", null, null);