Installer Framework

This page offers detail on the NDEVR provided tools and workflows that can be used to build and distribute applications across various platforms.

Overview of Bundling Logic

NDEVR Applications are based on modules: packaged libraries which contain modular logic. Each module can modify program behavior, add features, or add resources. These modules are specified in the ModuleList file which is copied over into the installation directory of the product. Defining this list is the first step for setting up an end project.

In order to support an ever-growing pool of modules and resources, individual modules are responsible for expressing any external file handler definitions, file dependencies, firewall dependencies, or dependencies on other modules directly within the code.

The procedure above is then run through the InstallerMaker.exe file, which has logic to convert these defined resources into installer build projects. 

The installer project is then generated automatically based on the modules included. (See below WiX project)

This newly generated installer project can then be compiled into an MSI, APK etc. 

Installer Build Directions

*Note that we encourage the below steps to be automated in a script on your build server.

To start the build process, find $(NDEVR_API_DIR)\VS\$(Platform)\ $(Configuration)\InstallerBuilder.exe

By default, the installBuilder will create an installer for the last built project; however, there is the option to pass a specific ModuleList to the installerBuilder via command line arguments. The following command line arguments are optional:

				
					-w --wixpath --wix_path [output path]
				
			

Specifies the path to the output folder for the generated WiX project (default $(NDEVR_API)/Installer)

				
					-l --launcherpath --launcher_path [output path]
				
			

Specifies the path to the output folder for the launcher.exe (default $(NDEVR_API)/Launcher)

				
					-m --modulelist --module_list [input location modulelist]
				
			

Specifies the modulelist file that defines modules to be modules (default file in .exe location)

				
					-a --apk --apkdirs --apk_dirs [input path]
				
			

Specifies the input folders (separated by “|”) for source code of the modules included in module list

Output WiX project from running the .exe will be written to:
$(NDEVR_API_DIR)\Installer\ NDEVRMSI.wixproj
 
This can then be built via WiX Toolset V4, the result of which will be:
$(NDEVR_API_DIR)\Installer\bin\ $(Configuration)\[language]\ [app_name]_[app_version]_Installer.msi
See also