Showing posts with label Wise package studio training. Show all posts
Showing posts with label Wise package studio training. Show all posts

Sunday, 4 November 2012

Application Packaging Online Training - November 2012 Batch

Inviting registrations for new batch of Application Packaging Online Training using AdminStudio, demo session scheduled on 7th November 2012.

What you need to attend training:

1. Laptop/Desktop with good Internet Speed 
2. Headset in working condition both microphone, speaker

Demo Session Timings:

India: 10.30pm IST 7th November
USA: 12:00 Noon Eastern Time(EST), 7th November
UK:    5pm BST, 7th November

Interested candidates can reply me for registration and to know more about timings and fee details.

For candidates who are interested but unable to make it to above mentioned, please let me know and I can arrange another demo session in your flexible timings.

For more details of our training and consulting services, please visit

Saturday, 5 May 2012

Application Packaging Online Training - May 2012 Batch

New batch of Application Packaging Online Training starting from 10th May 2012

Course Duration: 1 Month

Anyone interested? please contact me on

visit for more information on training topics.

Thursday, 29 December 2011

Application Packaging Online Training

Application Packaging Online training is going to be started shortly in 1st week of January'2012. For more information about the course please visit

Duration: 1month ( 1 hour per day)

You can contact me on +91-9963678795 or

Monday, 5 December 2011

Application Packaging Training @ Hyderabad, January 2012 Batch

New batch of Application Packaging classroom Training at Hyderabad from 3rd January 2012

Duration: 1 Month

Interested candidates can contact me on +91-9963678795 or

visit for more information about training details.

Note: If you are looking for Online training, please contact me. 

Friday, 28 October 2011

Application Packaging Training

New batch of Application Packaging Classroom Training at Hyderabad from 12th November 2011.
Course Duration: 1 Month ( 1hr/day)
Anyone interested?, please contact me on
visit for more information on training topics.
Note: Send me an email, if you are looking for online training details. Thanks

Saturday, 17 September 2011

Application Packaging Training @ Hyderabad, October 2011 Batch

New batch of Application Packaging Classroom Training at Hyderabad from 10th October 2011.

Course Duration: 1 Month ( 1hr/day)
Anyone interested?, please contact me on
visit for more information on training topics.

Note: Send me an email, if you are looking for online training details. Thanks

Monday, 12 September 2011

How to create Minor Upgrade MSI

Steps to create Minor Upgrade:

  1. Change the Package code and Product Version to create a minor upgrade
  2. Add feature / component by following the guide lines in Section: Requirement for Minor upgrade
  3. Add Remove or Modify files, registry keys and shortcuts.
  4. Add minor upgrade item in upgrades view (this is optional).
  5. Build and use the installer for upgrade.

Tuesday, 6 September 2011

Processing Options in Custom Actions

  • Synchronous
Windows Installer runs the custom action synchronously to the main installation. It waits for the custom action to complete successfully before continuing the main installation.

  • Synchronous, ignore exit code

Windows Installer runs the custom action synchronously to the main installation. It waits for the custom action to complete before continuing the main installation; the action can be either success or fail.

  • Asynch, wait at end of sequence

Windows Installer runs the custom action simultaneously with the main installation. At the end it waits for the exit code from the custom action before continuing.

  • Asynch, no wait
Windows Installer runs the custom action simultaneously with the main installation. It doesn’t wait for completion of the custom action and doesn’t check the exit code also.

What are MergeModules

Merge modules provide a standard method by which developers deliver shared Microsoft® Windows® Installer components and setup logic to their applications. Merge modules are used to deliver shared code, files, resources, Registry entries, and setup logic to applications as a single compound file. Developers authoring new merge modules, or using existing merge modules, should follow the standard outlined in this section.

A merge module is similar in structure to a simplified Windows Installer .msi file. However, a merge module cannot be installed alone, it must be merged into an installation package using a merge tool. Developers wanting to use merge modules must obtain one of the freely distributed merge tools, such as Mergemod.dll, or purchase a merge tool from an independent software vendor. Developers can create new merge modules by using many of the same software tools used to create a Windows Installer installation package, such as the database table editor Orca provided with the Windows Installer SDK.

When a merge module is merged into the .msi file of an application, all the information and resources required to install the components delivered by the merge module are incorporated into the application's .msi file. The merge module is then no longer required to install these components and the merge module does not need to be accessible to a user. Because all the information needed to install the components is delivered as a single file, the use of merge modules can eliminate many instances of version conflicts, missing Registry entries, and improperly installed files.

Tuesday, 30 August 2011

Hide ARP entry of an MSI

VBScript to hide ARP entry of an MSI. In place of [ProductCode] give the product code of the msi for which you want to hide the ARP entry.

Dim WSHShell,strRegKey 
Set WSHShell = WScript.CreateObject("WScript.Shell") 
WSHShell.Regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\[ProductCode]\SystemComponent","1","REG_DWORD"

SendKeys using VBScript

Following script is an example of how to use SendKeys function available in VBScript to pass automated clicks to an application.

Application Window Name should be changed in the script according to application that you are working on.

On Error Resume Next

Set WshShell = CreateObject("WScript.Shell")
strWindowNameEN = "Application Window Name"

successEN = False

successEN = WshShell.AppActivate(strWindowNameEN)
Loop Until (successEN = True)

If (successEN) Then
WshShell.AppActivate strWindowNameEN
End IF

WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"

Add entries to Hosts File

Following script can be used to append entries in HOSTS file. A text file containing the entry to be appended should be placed in INPUT location as in below script

 Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim TargetFile,objWshShell,objFSO, Input, ProgramFiles, WinDir
Dim objTextFile, Target
Set objWshShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
ProgramFiles = ObjWshShell.ExpandEnvironmentStrings("%ProgramFiles%")
WinDir = ObjWshShell.ExpandEnvironmentStrings("%WinDir%")
Set Targetfile = objFSO.GetFile(WinDir & "\system32\drivers\etc\hosts")
Set Input = objFSO.GetFile(ProgramFiles & "\Input.txt")

Set objTextFile = objFSO.OpenTextFile (Input, ForReading)
Set Target = CreateObject("Scripting.FileSystemObject")
Set TargetFile = Target.OpenTextFile (TargetFile, ForAppending, True)
Do Until objTextFile.AtEndOfStream
Input = objTextFile.ReadLine
objFSO.DeleteFile(ProgramFiles & "\Input.txt")

Monday, 29 August 2011

ICE Errors Reference

The following list provides links to each individual ICE. These ICEs are used to validate installation packages.

ICEBrief description of ICE
ICE01:Simple test of ICE mechanism.
ICE02:Circular reference test for File-Component, Registry-Component KeyPaths.
ICE03:Basic data and foreign key validation.
ICE04Validates file sequence numbers against the Media table's LastSequence numbers.
ICE05Validates for "required" entries in particular tables.
ICE06Validates for missing column or tables in the database. Any column defined in the _Validation table must be found in the database.
ICE07Validates that fonts are installed to the FontsFolder
ICE08Checks for duplicate GUIDs in the ComponentId column of the Component table.
ICE09Validates that the permanent bit is set for every component marked for installation into the SystemFolder.
ICE10Ensures that advertise feature states among children and parents are compatible.
ICE11ICE11 validates the Source column of the Custom Action table for Nested Installation custom actions. The Source column must contain a valid GUID (MSI product code).
ICE12Validates type 35 and type 51 custom actions and their locations in the sequence tables.
ICE13Validates that dialogs are not listed as actions in the execute sequence tables. Dialog actions are only allowed in the user interface sequence tables.
ICE14Validates that feature parents do not have msidbFeatureAttributesFollowParent bit set. Also validates that the entries in the Feature and Feature_Parent columns are not the same in the same record.
ICE15Validates that a circular reference exists between every entry in the MIME table and the corresponding extension in the Extension table.
ICE16Validates that the ProductName in the Property table is not greater than 63 characters in length.
ICE17Validates control type dependencies in the Control table. Covers PushButtons, RadioButtonGroups, ListBoxes, ListViews, and ComboBoxes
ICE18Validates the KeyPath column of the Component table when it is NULL. In this case, the key path is a Directory.
ICE19Validates the advertising tables: Class, TypeLib, Extension, PublishComponents, and Shortcut.
ICE20Validates that the required dialogs are in the Dialog table.
ICE21Validates that all components in the Component table map to a feature in the FeatureComponents table.
ICE22Validates that the Feature_ and Component_ columns in the PublishComponent table.
ICE23Validates the tab order of controls in all dialog boxes.
ICE24Validates certain properties in the Property table.
ICE25Verifies merge module dependencies and merge module exclusions.
ICE26Validates required and prohibited actions in the sequence tables.
ICE27Validates the organization and order of the sequence tables.
ICE28Validates actions that must not be separated by ForceReboot.
ICE29Validates that your stream names remain unique if truncated to the 62 character limit.
ICE30Validates that the installation of components containing the same file never installs the file more than once in the same directory.
ICE31Validates the text styles listed in the Text column of the control table.
ICE32Compares the column definitions to validates that keys and foreign keys are of the same size and type.
ICE33Checks for entries in the registry table that belong in other tables.
ICE34Validates that every group of radio buttons has a default.
ICE35Validates that any files from a cabinet file cannot be set to run from source
ICE36Validates that icons listed in the Icon table are used the Class, ProgID, or Shortcut tables.
ICE38Validates that components installed under the user's profile use a registry key under HKCU as their key path.
ICE39Validates the Summary Information stream of the database.
ICE40Performs various miscellaneous checks
ICE41Validates that entries in the Extension and Class tables refer to components belonging to the referenced feature.
ICE42Checks that Class table entries don't have EXEs set as InProc, and that only LocalServer contexts have arguments and DefInProc values.
ICE43Checks that non-advertised shortcuts are in components with HKCU reg keys as the key paths.
ICE44Checks that dialog events in the ControlEvent table (NewDialog, SpawnDialog, SpawnWaitDialog) reference valid Dialogs in the Dialog table.
ICE45Checks for reserved bits that are set.
ICE46Checks for custom properties that only differ from defined properties by their case.
ICE47Checks for features with more than 1600 components per feature on Windows NT/Windows 2000 and more than 800 components per feature on Windows 95 and Windows 98.
ICE48Checks for directories that are hard-coded to local paths.
ICE49Checks for non-REG_SZ default values in the registry table.
ICE50Checks that advertised shortcuts have correct icons and context menus.
ICE51Checks that TTC/TTF fonts do not have titles, but that all other fonts do.
ICE52Checks for non-public properties in the AppSearch table.
ICE53Checks for registry entries that write private installer information or policy values.
ICE54Checks for components using companion files as their key path file.
ICE55Checks that LockPermission objects exist and have valid permissions.
ICE56Validates that the directory structure of the .msi file has a single valid root.
ICE57Validates that individual components do not mix per-machine and per-user data.
ICE58Checks that your Media table does not have more than 80 rows.
ICE59Checks that advertised shortcuts belong to components that are installed by the target feature of the shortcut.
ICE60Checks that if a file in the File table is not a font and has a version, then it also has a language.
ICE61Checks the Upgrade table.
ICE62Performs extensive checks on the IsolatedComponent table for data that may cause unexpected behavior.
ICE63Checks for proper sequencing of the RemoveExistingProducts action.
ICE64Checks that new directories in the user profile are removed in roaming scenarios
ICE65Checks that the Environment table does not have invalid prefix or append values.
ICE66Uses the tables in the database to determine which schema your database should use.
ICE67Checks that the target of a non-advertised shortcut belongs to the same component as the shortcut itself, or that the attributes of the target component ensure that it does not change installation locations.
ICE68Checks that all custom action types needed for an installation are valid.
ICE69Checks that all substrings of the form [$componentkey] within a Formatted string do not cross-reference components.
ICE70Verifies that integer values for registry entries are specified correctly
ICE71ICE71 verifies that the Media table contains an entry with DiskId equal to 1.
ICE72ICE72 ensures that the only custom actions used in the AdvtExecuteSequence table are type 19, type 35, and type 51 custom actions
ICE73ICE73 verifies that your package does not reuse package codes or product codes of the Windows Installer SDK samples. See Package Codes and Product Codes.
ICE74ICE74 verifies that the FASTOEM property has not been authored into the Property Table.
ICE75ICE75 verifies that all custom action types that use an installed file as their source are sequenced after the CostFinalize action.
ICE76ICE76 verifies that no files in the BindImage table reference SFP (WFP) catalogs.
ICE77ICE77 verifies that in-script custom actions are sequenced after the InstallInitialize action and before the InstallFinalize action.
ICE78ICE78 verifies that that the AdvtUISequence table either does not exist or is empty.
ICE79ICE79 validates references to components and features entered in the database fields using the Condition data type.
ICE80ICE80 validates that Template Summary Property and Page Count Summary Property correctly specify the presence of 64-bit components or custom action scripts.
ICE81Validates the MsiDigitalCertificate table and MsiDigitalSignature table.
ICE82Validates the InstallExecuteSequence table.
ICE83Validates the MsiAssembly table.
ICE84Checks the sequence tables to verify that required standard actions have not been set with conditions.
ICE85Validates that the SourceName column of the MoveFile table is a valid long file name.
ICE86Issues a warning if the package uses the AdminUser property in database column of the Condition type.
ICE87Validates that the following properties have not been authored in the Property Table.
ICE89Validates that the value in the Progid_Parent column in ProgId table is a valid foreign key into the ProgId column in ProgId table.
ICE90Posts a warning if it finds that a shortcut's directory has been specified as a public property.
ICE91Posts a warning if a file, .ini file, or shortcut file is installed into a per-user profile directory that does not vary based on the ALLUSERS property.
ICE92Verifies that a component without a Component Id GUID is not also specified as a permanent component.
ICE93Issues a warning if a custom action uses the same name as a standard action.
ICE94Issues a warning if there are any unadvertised shortcuts pointing to an assembly file in the global assembly cache.
ICE95Checks the Control table and BBControl table to verify that the billboard controls fit onto all the billboards.
ICE96Verifies that the PublishFeatures action and the PublishProduct action are entered in the AdvtExecuteSequence table.

Active Setup Registry Keys

Following Registries are to be included in package to load User settings(either registries/files) so that by the time User
logs in his current user settings will be available on the machine.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode]]
"StubPath"="msiexec /fup {9A346205-EA92-4406-B1AB-50379DA3F057} /qn"

Tuesday, 9 August 2011

Application Packaging Training - September Batch

New batch of Application Packaging Classroom training is starting at Hyderabad on 3rd September. If you are interested contact me at 91-9963678795 or

For training details please visit

Friday, 18 March 2011

Application Packaging Training

Infrastructure services is hot and fastest growing domain across the Globe. Application Packaging is one domain

within Infrastructure services which is in peak demand.

Few points about Application Packaging:

What is Application Packaging
i) History of Operating Systems
ii) Evolution of Windows Installer Technology
iii) Why applications are Packaged

Application Packaging Tools
i) Wise Package Studio
ii) Install Shield
iii) Orca

For more information on Application Packaging Training. Please visit

I can deliver Classroom and Online training. Pls contact me If you are interested to learn Application Packaging

Training on OR 91-9963678795