Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduction
The purpose of this document is to outline the structure, build process, installation
process, and discuss issues that contributed to the current structure of the install kit
for TWM.
Contents
The install kit contains everything needed to install and run TWM on Windows XP,
Vista, and Windows 7 32bit and 64 PCs. Items necessary to install TWM include:
1. A self extracting archive for encompassing the whole install kit and used to
distribute to users.
2. A .MSI installation file containing nearly all necessary information for
installing TWM and the WinUSB driver.
3. The DifxApp Utility for installing the WinUSB driver package
4. Visual C++ 2005 SP1 redistributable installer that installs Microsoft runtime
libraries required by TWM to run.
5. An additional application, named InstallHelper, used to configure the .MSI file
to specifically target the PC TWM will install on and run the runtime library
installer.
The install kit includes other files needed by TWM to run correctly on the target
machine including the TWM program itself, the WinUSB driver package, the Well
Analyzer firmware files, help documentation, and optional files such as example well
files.
The self extracting archive contains the entire install kit and is what we distribute to
clients/users. It contains 4 files: the .MSI installation file, the runtime library
installer, InstallHelper, and the setup program. All other files are contained within
the .MSI file.
The .MSI holds all of the information necessary for Windows to install TWM and the
WinUSB driver package. It supports clean installations and replacement/upgrade
installations. It is designed to install TWM on both 32 bit and 64 bit Windows.
The DifxApp utility handles installing driver packages. It is the recommended
method for installing drivers when distributing them with an install kit of an
application. It is used by adding a merge module to an installation project in Visual
Studio, building the project, then running a post build script that modifies the .MSI
file to designate driver packages to install.
The Visual C++ 2005 SP1 redistributable installer installs runtime libraries and
configuration required by applications created with Visual Studio C++ 2005 SP1 to
run on machines without Visual Studio installed. The runtime libraries are also
included in the .MSI as a merge module.
The InstallHelper will configure the .MSI to specifically target the operating system
architecture (32bit or 64 bit Windows) TWM will be installed on. It also acts as the
bootstrap for the runtime libraries installer and the setup program.
Build Process
Visual Studio handles the majority of the build process itself. All files added to the
installer project are added to the .MSI based on properties set within Visual studio
for that file. It handles detecting dependencies and merging merge modules to the
MSI.
There are two tasks it is unable to perform. The first is specifying WinUSB as a driver
package to be installed with TWM. We have a post build script called EditMsi.vbs
that adds an entry to the MsiDriverPackages table in the output .MSI for the WinUSB
driver package. The entry references the inf file of the driver.
The second task is building the install kit into the self extracting archive. We do this
by running the IExpress utility in combination with a .sed configuration file to build
the archive.
Installation Process
The installation process starts out with the self extracting archive extracting its
contained files; in this case, the .MSI, InstallHelper, setup, and runtime library
installer. It then executes the InstallHelper application. InstallHelper configures
the .MSI based on the PCs operating system architecture and runs the runtime
library installer for Vista systems. Then it runs the setup program, which begin the
installation for TWM and the WinUSB driver.
However, we wanted to support installing TWM on both architectures with just one
install kit. We decided to create our own custom DifxApp merge module that would
include both versions of the DifxApp utility.