- October 22, 2021
- Posted by: Aelius Venture
- Category: Information Technology
WiX Toolset creates Windows installation packages from XML source code. The toolkit offers both a command-line environment and the newer MSBuild technology from within integrated development environments like Microsoft Visual Studio or SharpDevelop to produce MSI and MSM setup packages for developers.
Open-source software project WiX was created by Rob Mensching originally for Microsoft and is now maintained by him. The most recent binary and source code versions are available for download. This article assumes you are using the 3.x stable version.
A.NET Framework is required to execute the toolset, which is written in C#. Nevertheless, this is only valid for the toolkit as a whole. With this toolkit, you can easily construct installation packages that don’t need additional framework or software to run. If you’re building a custom program, you may need to use an additional set of tools, but only on your build computer; the client will only require the fully functional and self-contained installer package.
Windows Installer has no control over certain WiX extensions, which provide functionality that isn’t available through Windows Installer. If you want to install IIS websites, create registries, install drivers and services, create SQL Server databases, copy files, and register exceptions in Windows Firewall settings, WiX can handle all of that, plus much more.
In specialized mailing groups, there is a pleasant community of WiX developers and users. If you need help with anything WiX-related, this is the forum for you.
Specifications of the Wix Toolset
- A free and open-source platform for developing websites, Wix is used by millions of people across the world.
- Wix allows you to install packages in multiple languages.
- You won’t be able to install the same product more than once.
- As long as you’re running a 64-bit OS, it won’t let you install the 32-bit version, and vice versa.
- In-house and third-party development are both supported by Wix.
- Integration with third-party apps and the development of newer goods are also possibilities.
- Wix has complete control over Windows Installer functionality.
- Designed to be simple to create and utilize with Wix.
- To build processes, Wix can execute comprehensive integration into an application.
Limitations of the Wix Toolset
- Wix does not have a drag-and-drop feature.
- The MSI installer isn’t your typical package manager.
- It is difficult to use at first, and there is a learning curve to become used to it.
- No auto-dependency or inclusion.
- There are no bootstrappers included in WixToolset (setup.exe).
- In the Wix SDK file, software versions are limited to only three components (major.minor.build).
An established application with a build system like WiX can be installed and used for large-scale deployments of many different files. The vast majority of the company’s primary windows installer packages are installed via WiX.
Working of Wix Toolset
WiX’s source code is written in the XML language and is compiled and managed using models to execute the overall programs in specific models.
Wix uses a file extension of .wxs for its files.
To acquire the final performance when building a website with Wix source code and files to test the core Wix schema, you’ll need to employ a preprocessor, parser, and linker. With the Wix toolset, you may create unique outputs and output kinds by combining all of its capabilities.
System Requirements for Wix
From version.Net 3.5 and upwards, Wix supports a variety of.NET framework versions. A version of.NET 4.0 or above is required for Wix version 3.5. There are no newer versions installed by default because Wix MSBuild is compatible with.NET 3.5 and Windows 2012. Any other Windows installer is not allowed.
To install.NET 3.5, follow the steps outlined below:
- To begin, navigate to the Control Panel.
- Open the program and look at the options.
- From the drop-down menu, choose the Turn Windows feature ON or OFF.
- Click OK after selecting.NET Framework 3.5.
Wix Toolset Build Process
- .wxs is an XML document containing only one root element, <wix/>, and the following elements as children: <Product>, <Module>, and <Patch>.
- C++ header files with .h extensions are equivalent to .wxi files. All elements should be added under the root element using the Wix toolset.
- With other source files in the process, the compiler creates an object file with the extension .wix.obj. It is an XML document that conforms to the WiX project’s objects .xsd standard.
- The file extension .wixlib refers to a group of .wixobj files. Setting up different Wix-based packages is a breeze thanks to the library of setup utilities that are included.
- Wix source files are collected and converted into.wixobj (object) files by the Candle preprocessor, which then runs the compilation command on them.
- It links and binds. wixobj files easily using the Light (light.exe), which is a Windows installer with the extensions.msi and .msm.
- To create Windows installers with the extensions .msi and .msm, object files with the extension .wixobj are linked together.
- .msi is the smallest Windows-based installation package that can be created using the tools currently available.
The Most Important Rules to Remember
- They don’t affect the objective scheme because immediate custom behavior can’t be reversed. Only during the installation process, such as configuring directories and resources, selecting features, validating passwords, and so on, can improvements be made.
- Every action has a consequence, so every deferred custom action will also have a rollback custom action.
- There are choices for customization as well as a rollback script that can delay the action linked with that specific script with a range of tools available. This ensures that the rollback is completed correctly and that the installation is terminated during the custom action. This will improve your installation experience even more.
- Only custom actions are used between the installation packages’ InstallInitialize and InstallFinalize functions. Deferred, Commit, and Rollback actions, for example.
- If the setup is aborted within the user interface sequence before the InstallInitialize or after the InstallFinalize, there is no rollback.
- For example, if the rollback option is unchecked, the custom option will not be executed recently.
Create a Wix Toolset Sample Demo Setup in Visual Studio
To begin, construct a c# windows form application like follows:
- Start the Visual Studio application in order to incorporate the latest features by selecting the new project option from Visual C# in the Project Types tree at the top of the screen. Select the Windows Forms application after that.
- Then, for example, call the application “FirstDemoApplication” and press OK.
- Select the Project Type tree from the windows installers XML to create a new project, and then click on the project to create a new installation for the application.
- Press OK after giving your project the name “FirstDemoSetup.”
- By right-clicking on each reference that needs to be included, you may quickly add them.
- Go to the Projects tab in Visual Studio, then choose the FirstDemoApplication project, click the Add button, and then press OK.
- Finally, in the Visual Studio box, you’ll see the following comment appear on the screen.
“TODO: Add your files, registry keys, etc. –>”
Remove the comment and replace it with the following:
“<File Source=”$(var.MyApplication.TargetPath)” />”
- After you’ve completed the Wix Project, you’ll be able to install and uninstall the program.
Windows installation created using the Wix toolset and improved user experience are just a few of the many impressive capabilities of the Wix platform. There is no need to remember a lot of complicated source code because it installs everything smoothly. All of Wix’s capabilities are easily accessible to businesses, allowing them to quickly and easily build a personalized website. Using the WiX toolset, our developers can assist your company in achieving long-term success.
September 26, 2023
September 18, 2023
September 12, 2023