Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Bundle-based Template for Workspaces #101

Open
volks73 opened this issue Mar 22, 2020 · 0 comments
Open

Create Bundle-based Template for Workspaces #101

volks73 opened this issue Mar 22, 2020 · 0 comments
Assignees

Comments

@volks73
Copy link
Owner

volks73 commented Mar 22, 2020

A template for a WiX Source (wxs) file should be added to the subcommand that is used to generate a main.wxs when a virtual manifest (workspace) is detected. This would help address #74, where each binary crate within a workspace would have its own MSI package and main.wxs, but then a wix\main.wxs with a Bundle tag would be used within the root of the workspace, i.e. same folder as the Cargo.toml file with the [workspace] section.

Basis for creating the template would be from this:

<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Bundle Version="1.0.0" UpgradeCode="[Your GUID Here]">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"/>
   <Chain>
      <MsiPackage SourceFile="client\target\wix\client-0.1.0-x86_64.msi" />
      <MsiPackage SourceFile="server\target\wix\server-0.1.0-x86_64.msi" />
    </Chain>
  </Bundle>
</Wix>

Where a MsiPackage tag would be added to the Chain tag for each binary member with its own MSI package. The version number and architecture of the MSI file names would need to be changed to preprocessor variables so that these values do not need to be manually updated each time the member package version numbers are updated.

Also, a line needs to be added to the BootstrapperApplicationRef tag for specifying the RTF license file. I am not sure how to handle the RTF license file with a virtual manifest. In theory, it is possible for member packages to have different licenses and there is no license key or license-file key in virtual manifests. This might have to be something that is defined in the [package.metadata.wix], which is also available to define in a virtual manifest. It might be something that is only defined with the cargo wix init subcommand and the appropriate option. A warning could be displayed if one is not defined, just like the cargo wix init subcommand in "regular" packages.

The GUID would be generated automatically with the cargo wix init subcommand.

This is mostly for the cargo wix init and cargo wix print subcommand. The default create subcommand will need to be updated and tracked with a separate issue because it would require executing three create commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant