Pages

Showing posts with label Training. Show all posts
Showing posts with label Training. Show all posts

Tuesday, 6 September 2011

Windows File Versioning Rules

At the core of any installer is the actual installation of files. But determining whether to install a file is a complex process. At the highest level, making the determination depends on whether the component to which a file belongs is marked for installation. Once the determination is made that a file should be copied, the process is complicated if another file with the same name exists in the target folder. In such situations, making the determination requires a set of rules involving the following properties:
  • Version
  • Date
  • Language
The installer only uses these rules when trying to install a file to a location that already contains a file with the same name. In this case, the Microsoft® Windows® Installer uses the following rules to determine whether to install.


Highest Version Wins — All other things being equal, the file with the highest version wins, even if the file on the machine has the highest version.


Versioned Files Win — All other things being equal, a versioned file gets installed over a non-versioned file.


Favor Product Language — All other things being equal, if the file being installed has a different language than the file on the machine, favor the file with the language that matches the product being installed. Language neutral files are treated as just another language so the product being installed is favored again.


Mismatched Multiple Languages — All other things being equal, after factoring out any common languages between the file being installed and the file on the machine, any remaining languages are favored according to what is needed by the product being installed.


Preserve Superset Languages — All other things being equal, preserve the file that supports multiple languages regardless of whether it is already on the machine or is being installed.


Non-versioned Files Are User Data — All other things being equal, if the Modified date is later than the Create date for the file on the machine, do not install the file because user customizations would be wiped out. If the Modified and Create dates are the same, install the file. If the Create date is later than the Modified date, the file is considered unmodified, install the file.


Non-versioned Files Using Companion — All other things being equal, a non-versioned file that is associated with a versioned file using the companion mechanism abides by the rules for the versioned file. The only exception is if the versioned file on the machine and the versioned file being installed have the same version and language but the companion file is missing on the machine. In this case the companion file being installed is used even though the versioned file on the machine is used.


Rules Are Global — The rules for determining when to install a file reside in one place within the installer and are global, meaning they apply to all files equally.

Windows File Protection

A common problem in the history of the Microsoft Windows operating systems has been the ability for shared system files to be overwritten by non-operating system installation programs. After such changes are made, the user may experience unpredictable system performance, ranging from application errors to operating system crashes. This problem affects several types of files--most commonly dynamic link libraries (.dll) and executable files (.exe).


In Windows 2000 and Windows XP, the Windows File Protection (WFP) feature prevents overwriting or replacement of certain system files. Overwriting shared system files can result in unpredictable system performance that ranges from application errors to operating system crashes. System instability caused by non-standard replacement of system files has been a common problem. By preventing the replacement of these essential system files, file version mismatches are avoided, and the overall stability of the system is improved.

ActiveSetup Implementation



If you are using Windows Installer for per-machine-based installations, it could be the case that your setup contains components with user-related resources that have no entry-points to initiate the install-on-demand/self healing function of MSI. This, of course, will mean that when deployed the package will not install the user resources required to run the application properly.


But wait, don’t lose hope! In such a case you can use the Active Setup for a self healing on demand. It needs just one registry key in your msi file.







This registry key can be assigned to any Component that installs per-machine resources or you can create one component just for this key.


How it works:
The value in the StubPath key will be executed at a special time during which the Active Setup tasks are running and no other Windows Installer processes are running in the background that could cause the repair not to run (which would be the case if you attempted to run this command in the Run-Once registry key).
The command will thereby perform a repair for HKCU registry keys and missing files.


If this command runs successfully, it will create a registry key in HKCU and the command will not run again. However, if you wish to trigger this command again, because of a small update, then use the Version Key and increment its value each time you wish to run this command again when a user logs in.


Important Note:
Remember to use this command only if your setup does not contain any entry-point that would not allow the repair on demand, because this repair will run when a user on the target workstation logs in after the installation has been run. That means, even if the user doesn’t use the installed application, it will run the repair. And as you may already know, those repairs can take some time depending on the workstation’s hardware configuration and the size of the package.

SetACL Permissions Examples

Using SetACL to provide permissions


Command1: Providing registry permissions to Authenticated Users group


1.  setacl.exe "MACHINE\SOFTWARE\AHouse\GEPUIS ORBIX" /registry /grant "Authenticated Users" /full /i:cont_obj_inh /p:yes /r:cont_obj /silent


OR using S-ID


"MACHINE\SOFTWARE\AHouse\GEPUIS ORBIX" /registry /set "S-1-5-11" /full /sid /silent



Command2: Providing Folder permissions to Authenticated Users group


setacl.exe "c:\AudioTools\GIMP" /dir /set "S-1-5-11" /change /sid /silent



Change the group name / S-ID according to your requirement




Why multiple MSIExec.exe processes running on machine during aninstallation

A number of MSIExec processes can be running during an installation. The reason for this is that Windows Installer uses a client-server model for performing installations. Additionally for security reasons, Windows Installer hosts DLL and script custom actions in a "sandbox" process. Depending on how the install was initiated, one of the MSIExec processes can be the client process. Another MSIExec process is Windows Installer service. Any remaining MSIExec processes are usually sandbox processes for hosting custom actions. The determination as to which MSIExec process will serve as the sandbox process for a script or DLL custom action depends in part on whether the custom action will run elevated or impersonated and whether the custom action is 32-bit or 64-bit.

Tuesday, 30 August 2011

VMWare ThinApp 4.6.2 released

VMWare ThinApp 4.6.2 is released and can be download at VMWare ThinApp


The ThinApp 4.6.2 release adds the following features to improve usability, performance, and provide updates:

  • Multiple enhancements have been made in the ThinDirect component, and outstanding known issues addressed, to improve performance and reliability.

  • ThinDirect now supports the redirection of all browser pages except a specified list of URLs, instead of only supporting the redirection of only a list of specified URLs.
    Example:
    [VirtIE6.exe]
    -www.vmware.com
    *

  • New parameters have been added to the thinreg utility to enhance search and exclude functionality. See New Parameters in thinreg.exe.

  • The thinreg utility can now uninstall applications without dependence on .vbs file association to run the uninstall script.

  • Microsoft Office 2007 application startup times have been improved by approximately 30%.

  • The IgnoreDDEMessages parameter has been added to the Package.ini file. This parameter, which is automatically set for virtualized Internet Explorer 6 packages, causes an application to ignore any DDE messages that it receives, meaning that it can be used to ensure Document Open operations always launch in the native application and not an open virtual application.












Monday, 29 August 2011

Whats new in Installshield 2012

Introducing InstallShield 2012 - used by over 70,000 software producers on more than 500 million desktops, InstallShield 2012 is the only installation solution capable of supporting the needs of today’s sophisticated software producers for packaging both standalone offerings and complex suites. InstallShield 2012, has been updated for a new generation of app-savvy users, delivering a fresh, positive and friendly experience to the exacting standards of today’s sophisticated users. And – it’s the only solution providing automated tools that empower software producers to productize, package and install their products in both traditional MSI and virtual formats. Understanding the needs of today’s decentralized agile teams, means that Flexera Software can design a world-class installation solution that supports the installation authoring, building and bundling requirements of these teams.


Register for this “What’s New with InstallShield 2012” Webinar and learn more about our new features including:

  • Suite Installations: With the new InstallShield Suite Project type, multiple products can be easily bundled together into a single, unified suite installation eliminating the need to develop a complex custom launcher or bootstrapper application. This new functionality offers advantages over MSI chaining, InstallShield prerequisite support, and the user interface functionality that is provided by Windows Installer.

  • Installation Streaming: Installation Streaming reduces the downloading wait time required before installation can begin. End users need only download a small file to quickly start the installation giving a more immediate interaction with the product installation. Based on the selected install options, only the required packages are downloaded from the web or extracted from the installation, reducing the overall time it takes to install the application and providing an “app store-like” experience for the user.

  • Installation Collaboration: The InstallShield 2012 Collaboration add-on has been significantly enhanced to better support distributed, collaborative installation development allowing product developers and technical writers to more efficiently create and manage their portion of the installation.

  • 64-Bit Enhancements: Comprehensive support for 64-bit installation development including updated dependency scanners to identify 64-bit dependencies of the 64-bit files in a project; support for setting permissions for files, folders and registry keys in 64-bit locations; and a prerequisite that installs the 64-bit version of the Microsoft VSTO 2010 Runtime.

  • Application Tagging: InstallShield 2012 is the only strategic installation development solution that creates ISO 19770-2 software identification tags as part of the installation development process. This enables software producers to help their customers by delivering better visibility into their installed software estate in order to facilitate software compliance efforts.

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 Virtual.App.Packager@gmail.com


For training details please visit www.AppRepack.in

Wednesday, 22 June 2011

Application Packaging Training @ Hyderabad

I would like to Invite for New batch of Application Packaging Classroom Training at Hyderabad starting June 28 2011.


Course Duration: 1 Month ( 1hr/day)
Timings: 9am to 10am.


Anyone interested in online training?, please contact me on Arjun@AppRepack.in so that I can accommodate you in Online Training batch.


Please visit www.AppRepack.in for more information on training topics.

Saturday, 11 June 2011

Windows Registry

The Windows Registry is a hierarchical database that stores configuration settings and options on Microsoft Windows operating systems. It contains settings for low-level operating system components as well as the applications running on the platform: the kernel, device drivers, services, SAM, user interface and third party applications all make use of the registry. The registry also provides a means to access counters for profiling system performance.


When first introduced with Windows 3.1, the Windows registry's primary purpose was to store configuration information for COM-based components. With the introduction of Windows 95 and Windows NT, its use was extended to tidy up the profusion of per-program INI files that had previously been used to store configuration settings for Windows programs


For more information please visit http://en.wikipedia.org/wiki/Windows_Registry

Monday, 2 May 2011

Application Packaging Training/Workshop at Bangalore



I would like to take this opportunity to Invite all the Individuals and Corporates for much awaited Application Packaging Training/Workshop at Bangalore on May 27, 28, 29, 2011


Register at the earliest to avail discounts. Please pass this information to friends/colleagues who might be interested.


Give me a call for any other queries. You can also contact me on Arjun@Msipackaging.in OR 91-9963678795

Saturday, 6 March 2010

MSI Tables




Refer the attachment for description on MSI Tables


http://apppackaging.files.wordpress.com/2010/03/tables.doc

Application Packaging - Interview Questions - 2


  1. What is the use of Active Setup?  Is it part of MSI or Operating System?

  2. What is the custom action which checks for the free space on the disk during MSI installation?

  3. What is Windows File Protection  ? Where are Windows Protected files stored on the machine ?

  4. What is file versionining ?  If a macine has DLL of version 2.0 and your application has same DLL with version 3.0, what happens to the file during installation ?
A)     Replaced        B) Nothing happens      c) OverWritten   D) both files will be present after Installlation

  1. What is the best way to upgrade the Window Protected Files ?

  2. How do you install 2 MSI’s.  After installation of 1st MSI the machine has to reboot and upon start of the machine 2nd MSI installation has to be trigerred. Once installation of 2nd MSI is completed the User has to notified with a Message that 2 MSIs Installation has been completed. How do you perform the Task? ( If 1st MSI installation has failed then 2nd MSI installation shouldn’t happen)

  3. Can you create File System Services using MSI

  4. Have you ever  created a Driver Package ? How do you manually register the Drivers ? What do you check for successful driver installation ?

  5. What are Hosts, Lmhosts files ? Do you include them in the package?  How do you update these files if required by the application ?

  6. What are .ORA files ? What does they contain ?

  7. How do you extract Binary Information from MSI?

  8. What is the use of Merge Module? Have you ever created a Merge Module ? In what scenario merge modules needs to be created ? What the points to be kept in mind during Merge Module creation ?

  9. How do you create a Response File?  Where the response file will be created ?

  10. How do you apply permissions ? What method do you follow ? Do you have idea on using CACLS, SUBINACLS, Security Templates(SecEdit), RegDacls…… etc

Few Packaging Interview Questions


  1. What  are public properties
  2. What does SecureCustomProperties mean?
  3. What is component Isolation? When do you perform Component Isolation? What is the Advantage? What happens when you Isolate a component?
  4. What does AppSearch Table contain? What is the use of it? How is it related to Launch Conditions ?
  5. What is SelfReg table? Is it recommended to use SelfReg Entries ? What is the disadvantage of SelfReg Entries?
  6. What is the difference between the registration of DLL/OCX  and an EXE ?
  7. How do you apply permissions using MSI Tables? What is the purpose of LockPermissions Table? What is the disadvantange of LockPermissions Table?
  8. How do you install 2 MSIs with same product code on a same machine ?
  9. What is Minor Upgrade , Major Upgrade ? When do you perform major upgrade ? What are the sequence of custom actions required for Upgrade process and what are the Ideal locations of those custom actions ?
  10. What are the different sequences present in MSI
  11. What is the difference between Execute Immediate and Execute Deffered?
  12. Why do you require custom actions ?
  13. Can a Component have sub-components ?
  14. Can a feature exist under a component ?
  15. What is the use of Install Level property
  16. What does ALLUSERS  = 1,2, NULL mean?
  17. What are the different GUIDs present in MSI ?
  18. What happens if you use the command – msiexec /i [ProductCode] /qb               ( does the application gets installed on the machine ?
  19. What is Advertizing?  What is the advantage of Advertizing ? What are the MSI tables which support Advertizing?
  20. What the disadvantages of MSI
  21. What are the advantages of normal “setup.exe”
  22. What are the disadvantages of “setup.exe”
  23. How do add files to MSI or MST using Orca ?
  24. If you want to add a file using Orca, what are the MSI Tables you need to alter?
  25. What are ICE Errors ? If you have ICE does it affect the MSI Installation or application functionality ?
  26. How do you resolve ICE64 Error ?

Thursday, 4 March 2010

Application Packaging Training

Anyone Interested in Application Packaging Training which will be handled Online can reach me at Virtual.App.Packager@gmail.com