Can I set a custom license using WiX?

2019-03-12 09:57发布

问题:

The default license for an MSI generated by WiX is the common public license. How do I change this to GPLv2?

回答1:

The WixVariable XML element can be used.

<WixVariable Id="WixUILicenseRtf" Value="path\License.rtf" />

And here's a few others...

<WixVariable Id="WixUIBannerBmp" Value="path\banner.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="path\dialog.bmp" />
<WixVariable Id="WixUIExclamationIco" Value="path\exclamation.ico" />
<WixVariable Id="WixUIInfoIco" Value="path\information.ico" />
<WixVariable Id="WixUINewIco" Value="path\new.ico" />
<WixVariable Id="WixUIUpIco" Value="path\up.ico" />

Just a note about the GPLv2. Officially it's only available in TXT; when converted to RTF using something like WordPad, the hard coded new lines make for an untidy view in the MSI.



回答2:

Also worth mentioning is that you can provide variables on the command line, very handy when building localized MSI packages.

Example NANT code:

<light out="setup_${language}.msi"
  extensions="WixUIExtension"
  cultures="${language}" >

  <arg line="-loc &quot;setup-${language}.wxl&quot;" />
  <arg line="-dWixUILicenseRtf=EULA_${language}.rtf" />

  <!-- etc... -->

</light>