nwixtoolset
nwixtoolset
is a Node module wrapper around the Windows Installer XML Toolset executables.
Getting Started
nwixtoolset
works as a wrapper around the Windows Installer XML Toolset.
It abstracts the executables' switches with JS object abstraction.
Prerequistes
Windows
.NET Framework 4+
should be installed.
Linux and Mac OS X
First install wine
and winetricks
:
# Linux $ apt-get install wine winetricks # Mac OS X $ brew install wine --without-x11$ brew install winetricks
Then, configure wine
for WIX:
$ export WINEARCH=win32$ wineboot$ winetricks --unattended dotnet40 corefonts
Installation
nwixtoolset
can be installed using NPM:
$ npm install nwixtoolset --save
Usage
First import nwixtoolset
in your project:
const wixtoolset = ;
Then use wixtoolset's executable:
wixtoolset ;
nwixtoolset
uses native Promise
to wrap asynchronous operations and resolves with the result of the command:
wixtoolset ;
Command-line
nwixtoolset
can work as a simple wrapper around Windows Installer XML Toolset.
# Install module globally $ npm install nwixtoolset -g # Run module from command line $ wixtoolset candle -o tmp *.wxs$ wixtoolset light -o dist\setup.msi tmp\*.wixobj
Raw Usage
First import nwixtoolset
in your project:
const wixtoolset = ;
Then use raw wixtoolset's executable:
wixtoolsetraw ;
Or use raw cli executable wrapper:
wixtoolset ;
Documentation
Available Wrappers
candle
: Preprocesses and compiles WiX source files into object files (.wixobj). For more information on compiling.dark
: Converts a Windows Installer database into a set of WiX source files. This tool is very useful for getting all your authoring into a WiX source file when you have an existing Windows Installer database. However, you will then need to tweak this file to accomodate different languages and breaking things into fragments.heat
: Generates WiX authoring from various input formats. It is used for harvesting files, Visual Studio projects and Internet Information Server web sites, "harvesting" these files into components and generating Windows Installer XML Source files (.wxs). Heat is good to use when you begin authoring your first Windows Installer package for a product.insignia
: Inscribes an installer database with information about the digital certificates its external cabs are signed with. For more information, see Insignia.light
: Links and binds one or more .wixobj files and creates a Windows Installer database (.msi or .msm). When necessary, Light will also create cabinets and embed streams into the Windows Installer database it creates.lit
: Combines multiple .wixobj files into libraries that can be consumed by Light.lux
: Author declarative unit tests for custom actions.melt
: Converts an .msm into a component group in a WiX source file.nit
: Run declarative unit tests for custom actions.pyro
: Takes an XML output patch file (.wixmsp) and one or more XML transform files (.wixmst) and produces an .msp file.retina
: WIX Toolset library rebuilder.shine
: WIX Toolset Scanner.smoke
: Runs validation checks on .msi or .msm files.torch
: Performs a diff to generate a transform (.wixmst or .mst) for XML outputs (.wixout or .wixpdb) or .msi files.
wixtoolset.candle(src: string | string[], options: CandleOptions = {}): Promise
Preprocesses and compiles WiX source files into object files (.wixobj). For more information on compiling, see Compiler. For more information on preprocessing, see Preprocessor.
/** Options for the Candle executable. */
wixtoolset.dark(src: string, options: DarkOptions = {}): Promise
Converts a Windows Installer database into a set of WiX source files. This tool is very useful for getting all your authoring into a WiX source file when you have an existing Windows Installer database. However, you will then need to tweak this file to accomodate different languages and breaking things into fragments.
/** Options for the Dark executable. */
wixtoolset.heat(harvestType: HarvestType, harvestSource: string, options: HeatOptions = {}): Promise
Generates WiX authoring from various input formats.
It is used for harvesting files, Visual Studio projects and Internet Information Server web sites, "harvesting" these files into components and generating Windows Installer XML Source files (.wxs).
Heat is good to use when you begin authoring your first Windows Installer package for a product.
/** Heat Harvest Type */; /** Options for the Heat executable. */ ;
wixtoolset.insignia(options: InsigniaOptions): Promise
Inscribes an installer database with information about the digital certificates its external cabs are signed with.
; /** Common options for the Insignia executable. */ /** Options for the Insignia executable Database mode. */ /** Options for the Insignia executable Bundle mode. */ /** Options for the Insignia executable Reattach mode. */
wixtoolset.light(src: string | string[], options: LightOptions = {}): Promise
Links and binds one or more .wixobj files and creates a Windows Installer database (.msi or .msm). When necessary, Light will also create cabinets and embed streams into the Windows Installer database it creates.
For more information on linking, see Linker.
/** Options for the Light executable. */
wixtoolset.lit(src: string[], options: LitOptions = {}): Promise
Combines multiple .wixobj files into libraries that can be consumed by Light. For more information, see Librarian.
/** Options for the Lit executable. */
wixtoolset.lux(src: string | string[], options: LuxOptions = {}): Promise
Author declarative unit tests for custom actions. For more information, see Unit-testing custom actions with Lux.
/** Options for the Lux executable. */
wixtoolset.melt(src: string, dest: string, options: MeltOptions = {}): Promise
Converts an .msm into a component group in a WiX source file.
/** Options for the Melt executable. */
wixtoolset.nit(src: string | string[], options: RunOptions = {}): Promise
Runs the unit tests in one or more test packages. For more information, see Unit-testing custom actions with Lux.
wixtoolset.pyro(src: string, dest: string, options: PyroOptions = {}): Promise
Converts an .msm into a component group in a WiX source file.
/** Options for the Pyro executable. */
wixtoolset.retina(src: string, options: RetinaOptions = {}): Promise
WIX Toolset library rebuilder.
/** Options for the Retina executable. */
wixtoolset.shine(src: string | string[], options: ShineOptions = {}): Promise
WIX Toolset Scanner.
/** Options for the Shine executable. */ ;
wixtoolset.smoke(src: string | string[], options: SmokeOptions = {}): Promise
WIX Toolset Scanner.
/** Options for the Smoke executable. */
wixtoolset.torch(targetInput: string, updatedInput: string, options: TorchOptions = {}): Promise
WIX Toolset Scanner.
/** Options for the Torch executable. */ ; ; ;
wixtoolset.run(exe: string, args: string[], [runOptions: RunOptions]): Promise
Run WIX Toolset executable by using raw arguments.
/** Run Options */
Common Interfaces
/** Result of the wrapper. */
Contribute
Install Project dependencies
$ npm install
Build project
$ npm run build