Skip to content

MakeWxs helps to create Windows installation packaged (.msi) using [Wix toolset](https://wixtoolset.org/) by initializing and updating the Fragment elements containing the directory and the component structure.

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.rtf
Notifications You must be signed in to change notification settings

jiristrouhal/makewxs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About MakeWxs

MakeWxs aims to speed up work with the WiX Toolset.

It enables partial automation of creating .wxs source files containing the installation components and the directory structure and defining the main .wxs source file containing the Package element and the .wixproj. The program was created originally for the author's personal use and to avoid using more complex tools (like the HeatWave).

MakeWxs is designed primarily to be used with Wix v4.

IMPORTANT: This project is not related to the WiX Toolset development in any way and does not use any of its components.

How to get and install MakeWxs

You can download MakeWxs installer from here. Run the MakeWxs.msi and do the following:

  • Read carefully and accept the terms in the License Agreement.
  • Choose the destination folder.
  • Proceed with installation.

Quick tutorial

MakeWxs will now help you to create directory and component structure for a simple msi package.

As indicated in the About section, we will use Wix v4 together with MSBuild (here version 17.6.3).

  1. Download the zip archive with a simple directory hierarchy, that we want to use to build the installer. Extract the root directory into some location of your choice.
  2. Run the MakeWxs.exe in the MakeWxs installation folder.
  3. Specify the target directory, where .wxs containing the directory structure and program components should be created. Here, for example, it is the directory containing the root folder.
  4. Specify the source directory, containing all the files to be inclued in the msi package. In this case, it is the root folder itself.
  5. Specify the project (msi package) name (MWTutorial for example) and click Ok. Five files should appear next to the root folder.

“Produced_files”

  1. Specify the attributes of the Package element in MWTutorial.wxs.

    <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
        <Package Name="MWTutorial" Manufacturer="MyName" Version="1.2.3" UpgradeCode="##some guid">
            <MajorUpgrade DowngradeErrorMessage="A newer version has already been installed!" />
            <Feature Id="Main">
                <ComponentGroupRef />
            </Feature>
        </Package>
    </Wix>
  2. Copy the ComponentGroupRef Elements from the MWTutorial_group_refs.xml under the Main Feature in the MWTutorial.wxs.

        ...
        <Feature Id="Main">
            <ComponentGroupRef Id="group_root_nonempty_dir"/>
            <ComponentGroupRef Id="Root"/>
        </Feature>
        ...
  3. Build the project. Find and run the installer MWTutorial.msi.

  4. MWTutorial directory should appear in the Program Files (x86) with the following structure. Note that empty folder was excluded.

    MWTutorial
    ├───textfile.txt
    └───nonempty_dir
        ├───emptymarkdown.md
        └───helloworld.py

Remember that every time you change you update the MWTutorial_components.wxs and MWTutorial_dirs.wxs (by running the MakeWxs.exe again), the MWTutorial.wxs remains unchanged and you have to manually copy the group references from MWTutorial_group_refs.xml into MWTutorial.wxs under appropriate Feature elements.

About

MakeWxs helps to create Windows installation packaged (.msi) using [Wix toolset](https://wixtoolset.org/) by initializing and updating the Fragment elements containing the directory and the component structure.

Topics

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.rtf

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages