How to add EULAs to your Bootstrapper packages

Today I will write a quick note on how the Bootstrapper manages and displays EULAs.  In order to protect intellectual property, and be a nice internet-citizen in general, the Bootstrapper has the ability to map a EULA to a custom package.  This way whenever you need to install that custom package the EULA will be displayed and prompt the user to accept it before the installation proceeds.

How to Set the EULA
To bind a EULA to a custom package use the LicenseAgreement attribute in the Package.xml manifest.  The LicenseAgreement attribute should contain the name of a PackageFile described in the manifest.  So for example, the .NET FX Package.xml (English) looks like the following:

 <Package
  xmlns="<Path to Bootstrapper NS omitted>"
  Name="DisplayName"
  Culture="Culture"
  LicenseAgreement="eula.txt"
>
     <PackageFiles>
        <PackageFile Name="eula.txt"/>
    </PackageFiles>
     <!-- etc…-->

The file eula.txt then is included in the local directory and is the EULA for that redistributable component.

Displaying the EULA(s)
Once the Bootstrapper is built and ran it displays a EULA prompt for every different package to be installed.  So in the case that two packages have an identical EULA, only one EULA will be displayed in reference to both of those packages.

Also note that it is not required that every package file has a EULA, if the LicenseAgreement attribute is not set, then the user will still be prompted to install the package, but no additional text will be provided.

This simple feature allows you to create custom packages to deploy your redistributable components while still enforcing your license agreement. 

Until next time, deploy on!