Contributions are welcome, but please keep in mind the following goals of this project:
- Public APIs are only those which can be called in custom actions. See also:
- The model for public APIs should be similar to the Windows Installer automation interface for some familiarity.
The following software is required:
-
If Rust is already installed, please run
rustup update
to make sure you're up to date. -
Nightly toolchain
You need to install the nightly toolchain to build and test all examples.
rustup toolchain install nightly
The following software is recommended:
-
When opening this project directory and prompted, please install recommended extensions. These are limited only to things that help keep the project clean and should not feel intrusive.
-
WiX 4 is not supported at this time, but you should be able to install both side by side.
To build and test, simply run:
cargo test --all-features
By default, this will build x64 custom action DLLs from under examples. These are used when building a Windows Installer package that will not register itself so you can run it as many times as necessary to test custom actions:
msbuild -t:rebuild examples/example.wixproj
msiexec /i $PWD\target\debug\example.msi /l*v install.log
You do not need to build the MSI, but it is recommended if you make any changes to custom action examples or the product authoring. Even if you don't, the continuous integration (CI) build will make sure it builds cleanly.
If you have the x86 libraries for the Windows SDK installed, you can also build x86:
rustup target install i686-pc-windows-msvc
cargo test --target i686-pc-windows-msvc
msbuild -t:rebuild examples/product.wixproj -p:Platform=x86
This should not really be necessary and is not practically useful since x86-only Windows platforms are out of supported. This may only be necessary if your custom actions must use x86-only APIs from third parties.