This white paper describes how to use InstallAware to patch software products. While many third-party patching tools are available, most are loosely integrated with installation tools. This makes the distribution of patches and installation cumbersome, resulting in a less than satisfactory user. Some configuration creation tools provide an integrated approach to the creation of mechanism to patch, improving the user experience. In these cases, the patch creation process is very complex and requires special training. The patches are as a special kind of setup project, with many pitfalls of authorship, which the developer must be aware of before and during treatment be developing the actual patch. Since the patches are distributed sent to the actual product, this results in difficult situations where the original settings and can not be changed, but the author does not otherwise required for patches to be successful.
InstallAware addresses these challenges in the authorship of patches on a unique technology: a click patch. InstallAware literally builds patches for older versions of their products with one click. Look in the IDE for older versions built configuration update, and click "Generate Patch" button. Encoding cost additional development or at any time necessary. InstallAware does the rest.
Despite these remarkable ease in the InstallAware tradition, extensive experience in the processes of adaptation and user patches patches still possible. This makes it possible for you. Their business logic in your installer at run time, which drastically reduces the development effort that would otherwise be required to integrate to support this logic For example, before a patch dynamic validation of the existing product license can users perform, unless the software update if your license has expired or is invalid. Likewise, a single patch be applied to multiple targets – so that it is possible to reduce the workload of the integration patching products in various target languages, editions, and other settings.
InstallAware other support patch deployment by reducing the payload size, improving compression rate and caching the old version configuration sources. The patches are built using binary technology gradual differentiation, which contains only the delta between the old and new versions of your files in the patch package. This data is then to save even more space compressed with LZMA compression technology / BCJ2, pre-processes, to increase its compression ability files. At runtime InstallAware simply refers to the sources of cache configuration, unnecessary CD / DVD and other media news original installation, otherwise derail patch distribution (other mechanisms no configuration creation sources do cache settings in the end-user system).
In addition to offering these unique benefits InstallAware is completely based on standards – InstallAware each patch is a patch package native Windows Installer (MSP) which can run directly without third Scripting Runtime are installed previously. Windows Installer technology is the only Microsoft-approved facility and is a requirement of certification programs Microsoft logo. Further advantages are the plants with elevated privileges in contexts of high corporate security and automated deployment using Group Policy in Active Directory. These advantages make the MSP patches single format software distribution format for large companies accepted.
The construction of the first version of the Installation
Update While it is possible, products built with any technology created with InstallAware Setup, these improvements can not use One-Click technology InstallAware patches. Any product that you want to patch up with InstallAware must have been originally installed with InstallAware.
To build the installer for the first version of the product, follow these steps.
1 Our hypothetical product consists of two files, an application file and a data file. Notepad default text editor for Windows is located in the Windows folder, it will serve our application file.
Let's go ahead and create the data file. Right-click the desktop and select New – Text Document. Name the Notepad file data, double-click it and edit it so that the contents look like the following image:
2 Now that our product files first version is ready, we can use the construction of the first version of the installer. Start the InstallAware IDE 7 with the Windows Start menu. Then, in the Project tab in the new group, click the Preferences button. The New Project window appears.
3 selected basic installation project type. In addition, the new project window is a list of other types of templates, wizards, sample projects and projects converters.
The type of project-based installation contains all the plumbing we need to build a fully functional system – with the support of multi-function box, repair and maintenance of applications, uninstalling and patches, our focus in this paper.
4 In the Project name field, type the default value of my setup, or give your own project name. The projects are usually created in the My Documents folder, and are located within their own subfolders. To use a different folder, enter the folder name here, or use the default value. Click OK when you are ready, the project are to create.
5, since our installation project is ready now, let's start with the meat with the logical organization of our products. On the Design tab, click the Files and Settings button. Selection of functions under the title Architecture design configuration and define two functions, so that your setup project is similar to the screenshot above. With the Rename button to rename the existing functions, and the New button to add new features. The up-down button in the upper right corner of the design to see its features enable sorting. In addition, you can use the descriptions by highlighting a function and then editing its description in the Description field properties.
When you are finished, select the Designer files under the installation architecture heading to add the actual product files to the setup project.
6 The upper part of the designer file is available in the system development files. The lower portion of designer shows the files that are installed on your configuration. Follow displays the list of variables in the list of destination folders. $ $ TARGETDIR is a special variable which the user selected during the installation target directory. Select $ $ targetdir before the files to ensure that the end user be installed on the selected target.
The filter files using the box can be connected (the properties defined in the previous step) individual files with the logical organization of your product. After checking the box, be sure the product that you want to associate files with.
From the Windows folder, add the file with notepad.exe Program Files function. Then go to the desktop folder and add the file as Notepad Data.txt Data Files function.
7 Shortcuts allow us to install easily open files and test the patch works. Select Shortcuts Designer under the title Architecture Settings, and then click New to display the new link.
It's easy to create shortcuts in a variety of locations with this dialog box. Click the Browse button to the files are installed visual link between objectives, or alternatively write a file or folder directly in the field shortcut target. Be sure your name for the link to the text field, and select at least one place to create the link under the Shortcut placement groups. Click OK to save the changes.
Create two shortcuts – called My data points to our dummy text file, and another called My program on the copy of the book we install. We are now ready to build our first installation of version!
8 In the Project tab in the Create group, click Web Deploy. We have to build for the Web Deploy mode, because if a system constructed in this manner, its locally cached configuration sources in the target system – eliminating the need for manual multimedia source to be with other designs, such as occurs CD or DVD mode to build. It is also possible, without actually having to build a Web Deploy installation mode, the display something on the net – we will revisit this issue in the second part of this guide.
When construction is complete, click on the down arrow in the Folder button from the group, and select Generate Web Deploy location. Explorer opens with our built configuration, the following files in the folder:
* My Setup.exe: This is the main installation file that contains the installer engine.
* Files.7zip data: This data file contains all the configuration files that are contained in the function of the data files.
* Files.7zip program: This file contains the configuration files that are included in the Program Files function.
9 Create a new folder on the desktop, telephone Version One. Copy all configuration files built in this folder. This folder serves as a backup location for your old version of the installer, that is all that is needed to build a patch addressed this first version. No files needed by old products or configuration sources.
Construction of the second (and more) Version Installers
Now that we have successfully created and saved a copy of our first installation of versions, we are ready to make installation and construction of the second version changes in the proposed product.
1 Edit the text file on the desktop that you created in step 1 of the previous section, and edit your content to make it like the image below:
2 Save your changes in the text file, and create settings according to the procedure in step 8 of the previous section. Remember to create another folder on your desktop called two-version for use with future patches, and again, copy all configuration files in this folder integrated backup the second version of the installer.
3 If necessary, additional changes in the product files and setup project (eg additional files to add), and most installers build version as needed. Just be sure to back up each system installed, so you can patch it later.
Structure of the patch
There is absolutely no additional steps required to create a patch that build on changes in the product files and the new version of the installer. Follow the steps below to create the patch:
1 On the Design tab, in the Views group, click the Deploy button.
2 Titled deployment, select the patches Designer. Click the Add button in the designer patches and add the Setup.exe file from the My Folders A previously created on the desktop version.
3 If other versions of the product for patching, add your backup folder to installers. These old saved version of InstallAware installers you need to create a Patch!
4 Click the Build Patch button. Once the patch has been created, click on the Browse button to open Explorer to the folder that contains the patch file, My Setup.exe. This patch will update all references successfully older versions to the latest version!
Congratulations! Now he has built a patch for your software product with InstallAware. Install the first version of the installation, open the text file in order to verify the content; then install and make sure that the text file was updated the patch. Experiment with, the more changes to the setup project, and let InstallAware maintenance of construction of more patches than with a single click!
Patch Source Resolution
All Windows Installer patches need access to the configuration files of the previous version of the product. The installation files for the old version must be successfully identified (resolved) apply via patches. This section describes how to handle this requirement InstallAware Patches source resolution.
Resolution patch-source Web-deployed settings
Since web-site cache settings when the configuration files, patch resolution for web source is automatically used configurations. No manual steps are required checks for the original decision. It is also possible, provided web configurations that do not have an Internet connection at any time of installation require author; These advantages make ideal settings for Web-use patch in InstallAware.
Patch Source Resolution CD or DVD settings
If it is not desirable to locally cache configuration sources can also be used in CD-or DVD settings. Patching an installation CD or DVD, a dialog box for the original installation files. At this stage, only the end user to insert the original installation CD and select the drive that the configuration sources. If an installation CD or DVD is not stored on removable media, but is located in a folder on your hard drive, simply select the folder is enough to be checked for the original decision.
Resolution patch source configurations for single file
A single configuration file for all packages install files in a single self-extracting file. This self-extracting file, when executed, all first extends the installation files to a temporary folder, and start the installation. Patching against these configurations is thus not enough to point to the folder that contains the single self-extracting file. Instead, the self-extracting file should be executed, so that the extraction step of the installation is finished files to a temporary folder, and then you should choose the temporary folder. The identification of these folders can be a little intimidating for novice end-users, therefore, the configurations are not recommended from a single file patches as targets; but if necessary, it is still possible to patch configurations of individual files.
A practical step by step method to the temporary folder in the extracted find the installation files as follows:
1 Click the Windows Start button, select Run and type% temp% in the Open box. Then click OK.
2 Windows Explorer opens and displays the contents of the user's temporary folder.
3 Look for a folder that starts with the characters and ends with mia TMP-mark, with some random numbers and letters in the middle. In the rare case that it will fit more folders in this model, just try each folder until patch is one of your choice (the patch installer checks for valid sources are given) to accept.
The main advantage of using a single configuration file to a monolithic package that everything needed to install contains an application without an Internet connection or a CD / DVD (and other types of removable media). You can web configurations used that do not require at any point nor monolithic, and access to the Internet during installation, so that in cases where a configuration of a single monolithic file is desired, the Web Deploy build mode can be advantageous to construct the building single file mode. Resolution patch source automatically with all web configurations, and the output of a system used built with Web Deploy mode may be a single physical file are still building, as described in the next section.
Construction of monolithic Web application configurations
Since web application configurations are configurations based patching against easier, it is convenient installers use their versions fully develop. In certain situations, you can configurations that create not require an Internet connection at any time. InstallAware makes it easy monolithic web used to build configurations – which are completely independent – so always configuration files cache contains all configuration data in a single installation file and are easy for end users to patch. To convert an existing configuration settings monolithic to an extended path, follow these steps:
1 Open the setup project in the IDE InstallAware and select the access to the complete installation sources MSIcode tab.
2 In MSIcode Editor, select the tab immediately to the right of the Welcome tab. For our hypothetical configuration this tab is My settings with the label.
3 Note the two drop-down combo boxes immediately above command sequence MSIcode. Select Web Media Blocks in the left combo box. Then expand the right drop-down list to a list of all the Web Media Blocks (part of the configuration which are downloaded from the internet at runtime) display.
4 Select a web media block in the Open combo box. The MSIcode editor positions the cursor in the right place in the script where the web media block is defined.
5 Click on the highlighted web media block row and choose Comment Out / In. This tells the Web Media Block definition, direct the compiler to ignore InstallAware Setup this Directive.
6 Repeat steps 4-5 until all blocks of the web media in the script MSIcode were discussed.
7 Press the Page Up key until you are installing on top of the script.
8 Use the mouse to move the Web Media Block command palette MSIcode commands (right MSIcode Editor) to the top of the script by drag & drop. This adds a new Web Media Block command in the script MSIcode.
9 Define dialog box appears Web Media Block. Without changes in this dialog box, click the OK button. This adds a new line in your script called MSIcode [offline content]. This tells the compiler that all InstallAware Setup files directly in the main setup.exe file instead of an Internet address where you can download include the duration of your installation package.
Building your installation Web Deploy Build Mode a monolithic network is now used configuration requires at any time during the installation to create no internet access, automates the delivery of the easiest targets thanks to write against the original judgment Patch.
InstallAware provides variable compiler that an easy way to create multiple configuration files for a project installation to offer. Using compiler variables that can similarly conditional statements can be found in most programming languages, you can conditionally can include / exclude parts of the script MSIcode, and build different flavors of an existing configuration, all based on a single project installation.
InstallAware provides several variables Built-in compiler. For example evaluates the internal variable BUILD MODE to build patch compiler InstallAware`s patches. This makes it very easy, extra logic to add your MSIcode font that only created a collection of patches (eg click on the Patch button in the Create group, click the Project tab). Additional, custom compiler variables by the project options (by clicking on the project settings in the group manage the project file is accessed) can be defined. Values compiler variables can also be set from the command line when the command-line tool miabuild.exe to build, for simplicity's sake be used.
Conditional compilation variables with compiler
Three commands MSIcode offer test, the values of the variables and compiler selectively / exclude parts of the script MSIcode at compile time. These commands are in the group of compiler directives MSIcode range command (in MSIcode tab on the right hand side of the editor MSIcode available):
* If compiler variable: Opens a new block of conditional compilation. Simply drag and drop this command in the MSIcode script to create together a new conditional block.
In the Variable field of this command to specify the compiler variable to test. They can be built for both variables and custom compiler to test with this command. To create a new conditional block compiled only included to start the construction of patches, giving BUILD MODE in this area. In the control panel, select a type of comparison to perform. Accept builds the default comparison for the same patch test. If you need to reverse the type of comparison, check the reverse comparison (or not) check box. In comparison with the area between the literal value to the value of the variable compiler test against. For patches, PATCH enter in this field.
* Compiler Variable Else: industries already begun conditional compilation block so that if the immediately preceding compiler variable If the test fails, the commands are compiled conditionally after the Else MSIcode variable compiler command.
* Compiler Variable End: Closes a conditional compilation block previously with a compiler, when reference variable open. If each variable compiler command must have a corresponding end command variable compiler.
You can freely nest several conditional compilation blocks as you see fit. You can use all commands in their MSIcode conditionally compiled blocks to use.
InstallAware variables compiler internally for possible patches with one click. Most InstallAware templates (including the basic configuration template used in this paper) a properly constructed script MSIcode variable when all commands / end / Else to build patch is used effortlessly necessary from the same plant project compiler The main configuration.
Using compiler variables thus provides out of the box comfort patches click for developers the flexibility and allows the designer with additional adjustments to the patches that are built on the basis of a single installation project. You can InstallAware freely customize any templates to meet your needs and to integrate any business logic to patch their systems, while the problems and overheads with which connected to the creation and maintenance of new, separate projects patches from scratch.