WiX Toolset

Light Task

The Light task wraps light.exe, the WiX linker. It supports a variety of settings that are described in more detail below. To control these settings in your .wixproj file, you can create a PropertyGroup and specify the settings that you want to use for your build process. The following is a sample PropertyGroup that contains settings that will be used by the Light task:

<PropertyGroup>
    <LinkerTreatWarningsAsErrors>False</LinkerTreatWarningsAsErrors>
    <LinkerVerboseOutput>True</LinkerVerboseOutput>
    <SuppressIces>ICE18;ICE45;ICE82</SuppressIces>
    <SuppressSpecificWarnings>1111</SuppressSpecificWarnings>
    <TreatSpecificWarningsAsErrors>2222</TreatSpecificWarningsAsErrors>
    <WixVariables>Variable1=value1;Variable2=value2</WixVariables>
</PropertyGroup>

The following table describes the common WiX MSBuild parameters that are applicable to the Light task.

Parameter Description
BindInputPaths Optional string parameter.

Specifies a binder path that should be used to locate all files. This is equivalent to the -b <path> switch.
Named BindPaths are created by prefixing the 2-or-more-character bucket name followed by an equal sign ("=") to the supplied path.
BindFiles Optional boolean parameter.

Specifies that the tool should bind files into a .wixout file. This is only valid when the OutputAsXml parameter is also provided. This is equivalent to the -bf switch.
Pedantic Optional boolean parameter.

Specifies that the tool should display pedantic messages. This is equivalent to the -pedantic switch.
SuppressAllWarnings Optional boolean parameter.

Specifies that all warnings should be suppressed. This is equivalent to the -sw switch.
SuppressIntermediateFileVersionMatching Optional boolean parameter.

Specifies that the tool should suppress intermediate file version mismatch checking. This is equivalent to the -sv switch.
SuppressSchemaValidation Optional boolean parameter.

Specifies that schema validation of documents should be suppressed. This is equivalent to the -ss switch.
SuppressSpecificWarnings Optional string parameter.

Specifies that certain warnings should be suppressed. This is equivalent to the -sw[N] switch.
TreatSpecificWarningsAsErrors Optional string parameter.

Specifies that certain warnings should be treated as errors. This is equivalent to the -wx[N] switch.
TreatWarningsAsErrors Optional boolean parameter.

Specifies that all warnings should be treated as errors. This is equivalent to the -wx switch.
VerboseOutput Optional boolean parameter.

Specifies that the tool should provide verbose output. This is equivalent to the -v switch.

The following table describes the parameters that are specific to the Light task.

<td>Optional <b>boolean</b> parameter.<br />
<br />
Specifies that the linker should allow duplicate directory identifiers. This allows duplicate directories from different libraries to be merged into the product. This is equivalent to the -ad switch in light.exe.</td>
Parameter Description
AllowIdenticalRows Optional boolean parameter.

Specifies that the linker should allow identical rows. Identical rows will be treated as warnings. This is equivalent to the -ai switch in light.exe.
AllowDuplicateDirectoryIds
AllowUnresolvedReferences Optional boolean parameter.

Specifies that the linker should allow unresolved references. This will not create valid output. This is equivalent to the -au switch in light.exe.
AdditionalCub Optional string parameter.

Specifies an additional .cub file that the linker should use when running ICE validation. This is equivalent to the -cub <file.cub> switch in light.exe.
BackwardsCompatibleGuidGeneration Optional boolean parameter.

Specifies that the linker should use the backward compatible GUID generation algorithm. This is equivalent to the -bcgg switch in light.exe.
CabinetCachePath Optional string parameter.

Specifies a path that the linker should use to cache built cabinet files. This is equivalent to the -cc <path> switch in light.exe.
CabinetCreationThreadCount Optional integer parameter.

Specifies that number of threads that the linker should use when building cabinet files. This is equivalent to the -ct <N> switch in light.exe.
Cultures Optional string parameter.

Specifies a semicolon or comma delimited list of localized string cultures to load from .wxl files and libraries. Precedence of cultures is from left to right. This is equivalent to the -cultures:<cultures> switch in light.exe.
DefaultCompressionLevel Optional string parameter.

Specifies the compression level that the linker should use when building cabinet files. Valid values are low, medium, high, none and mszip. This is equivalent to the -dcl:<level> switch in light.exe.
DropUnrealTables Optional boolean parameter.

Specifies that the linker should drop unreal tables from the output image. This is equivalent to the -dut switch in light.exe.
ExactAssemblyVersions Optional boolean parameter.

Specifies that the linker should use exact assembly versions. This is equivalent to the -eav switch in light.exe.
Ices Optional string parameter.

Specifies that the linker should run specific internal consistency evaluators (ICEs). This is equivalent to the -ice:<ICE> switch in light.exe.
LeaveTemporaryFiles Optional boolean parameter.

Specifies that the linker should not delete temporary files. This is equivalent to the -notidy switch in light.exe.
LinkerAdditionalOptions Optional string parameter.

Specifies additional command line parameters to append when calling light.exe.
LinkerBindInputPaths Optional string parameter.

Specifies a binder path that the linker should use to locate all files. This is equivalent to the -b <path> switch in light.exe.
Named BindPaths are created by prefixing the 2-or-more-character bucket name followed by an equal sign ("=") to the supplied path.
LinkerBindFiles Optional boolean parameter.

Specifies that the linker should bind files into a .wixout file. This is only valid when the OutputAsXml parameter is also provided. This is equivalent to the -bf switch in light.exe.
LinkerPedantic Optional boolean parameter.

Specifies that the linker should display pedantic messages. This is equivalent to the -pedantic switch in light.exe.
LinkerSuppressAllWarnings Optional boolean parameter.

Specifies that all linker warnings should be suppressed. This is equivalent to the -sw switch in light.exe.
LinkerSuppressIntermediateFileVersionMatching Optional boolean parameter.

Specifies that the linker should suppress intermediate file version mismatch checking. This is equivalent to the -sv switch in light.exe.
LinkerSuppressSchemaValidation Optional boolean parameter.

Specifies that the linker should suppress schema validation of documents. This is equivalent to the -ss switch in light.exe.
LinkerSuppressSpecificWarnings Optional string parameter.

Specifies that certain linker warnings should be suppressed. This is equivalent to the -sw[N] switch in light.exe.
LinkerTreatSpecificWarningsAsErrors Optional string parameter.

Specifies that certain linker warnings should be treated as errors. This is equivalent to the -wx[N] switch in light.exe.
LinkerTreatWarningsAsErrors Optional boolean parameter.

Specifies that all linker warnings should be treated as errors. This is equivalent to the -wx switch in light.exe.
LinkerVerboseOutput Optional boolean parameter.

Specifies that the linker should provide verbose output. This is equivalent to the -v switch in light.exe.
OutputAsXml Optional boolean parameter.

Specifies that the linker should output a .wixout file instead of a .msi file. This is equivalent to the -xo switch in light.exe.
PdbOutputFile Optional string parameter.

Specifies that the linker should create the output .wixpdb file with the provided name. This is equivalent to the -pdbout <output.wixpdb> switch in light.exe.
ReuseCabinetCache Optional boolean parameter.

Specifies that the linker should reuse cabinet files from the cabinet cache. This is equivalent to the -reusecab switch in light.exe.
SetMsiAssemblyNameFileVersion Optional boolean parameter.

Specifies that the linker should add a fileVersion entry to the MsiAssemblyName table for each assembly. This is equivalent to the -fv switch in light.exe.
SuppressAclReset Optional boolean parameter.

Specifies that the linker should suppress resetting ACLs. This is useful when laying out an image to a network share. This is equivalent to the -sacl switch in light.exe.
SuppressAssemblies Optional boolean parameter.

Specifies that the linker should not get assembly name information for assemblies. This is equivalent to the -sa switch in light.exe.
SuppressDefaultAdminSequenceActions Optional boolean parameter.

Specifies that the linker should suppress default admin sequence actions. This is equivalent to the -sadmin switch in light.exe.
SuppressDefaultAdvSequenceActions Optional boolean parameter.

Specifies that the linker should suppress default advertised sequence actions. This is equivalent to the -sadv switch in light.exe.
SuppressDefaultUISequenceActions Optional boolean parameter.

Specifies that the linker should suppress default UI sequence actions. This is equivalent to the -ui switch in light.exe.
SuppressFileHashAndInfo Optional boolean parameter.

Specifies that the linker should suppress gathering file information (hash, version, language, etc). This is equivalent to the -sh switch in light.exe.
SuppressFiles Optional boolean parameter.

Specifies that the linker should suppress gathering all file data. This has the same effect as setting the SuppressAssemblies adn SuppressFileHashAndInfo parameters. This is equivalent to the -sf switch in light.exe.
SuppressIces Optional string parameter.

Specifies that the linker should suppress running specific ICEs. This is equivalent to the -sice:<ICE> switch in light.exe.
SuppressLayout Optional boolean parameter.

Specifies that the linker should suppress layout creation. This is equivalent to the -sl switch in light.exe.
SuppressMsiAssemblyTableProcessing Optional boolean parameter.

Specifies that the linker should suppress processing the data in the MsiAssembly table. This is equivalent to the -sma switch in light.exe.
SuppressPatchSequenceData Optional boolean parameter.

Specifies that the linker should suppress patch sequence data in patch XML to decrease bundle size and increase patch applicability performance (patch packages themselves are not modified).
SuppressPdbOutput Optional boolean parameter.

Specifies that the linker should suppress outputting .wixpdb files. This is equivalent to the -spdb switch in light.exe.
SuppressValidation Optional boolean parameter.

Specifies that the linker should suppress .msi and .msm validation. This is equivalent to the -sval switch in light.exe.
SuppressTagSectionIdAttributeOnTuples Optional boolean parameter.

Specifies that the linker should suppress adding the sectionId attribute on rows. This is equivalent to the -sts switch in light.exe.
UnreferencedSymbolsFile Optional string parameter.

Specifies an unreferenced symbols file that the linker should use. This is equivalent to the -usf <output.xml> switch in light.exe.
WixVariables Optional string parameter.

Specifies a semicolon-delimited list of bind-time WiX variables. This is equivalent to the -d<name>[=<value>] switch in light.exe.