Lesson 1 – Planning Deployment

  • Goal = simple + easy installation of app files (+any others required) to client machine
  • Simple apps = copy to destination directory
  • Complex apps = use Windows Installer to configure client machine

 

XCOPY Deployment

  • Name derived from DOS XCOPY – copy directory (and subdirectories) from source to target
  • Accomplished from command prompt
  • All files required by app must be located within its directory (or below)
  • .NET framework must be installed on client machine
  • App can not require presence of resources (e.g. DB) not known to be already present on client
  • Usually only use for Apps with no externally dependencies and where it is known client will have .NET installed

 

Creating Setup Project

  • Visual Studio .NET can create Windows Installer projects
  • 2 forms
    • setup – deploying executables
    • merge – deploy controls and components that do not exist as standalone apps. Redistributable package that can be merged into existing setup
  • Create via Setup Project wizard
    • Add setup project to existing solution
    • Choose project type (e.g. setup for windows app, or create merge module)
    • Determine what outputs to include in setup
      • Primary output (.exe or .dlls)
      • Resources
      • Debug symbols
      • Content files
      • Source files
    • Select any additional files to include (browse across hard drive)

 

Build Properties for Setup

  • Configure output of project via properties window
  • Produces at least one file (with .msi extension) containing all info required to install app
  • Can create additional files to install app on machines without Windows Installer already present

 

Output File Name

  • Location and name Windows Installer file will reside once built
  • Default = <configuration>\<projectname>.<extension> where
    • <configuration> = subdirectory for selected configuration (e.g. release) in project directory
    • <projectname> = name of project
    • <extension> = .msi for Windows Installer application project or .msm for Windows Installer merge project

 

Package Files

  • Determines how output files will be packaged
  • Default = package into setup file itself
    • High compression
    • Low level of complexity
  • Place into Cabinet (CAB) files
    • Can determine size of CAB files (useful if size limitation on output, e.g. destination = floppy)
  • Package into loose, uncompressed files in same directory as MSI file

 

Bootstrapper

  • Determine if bootstrapping app to be generated
  • Bootstrapping app installs Windows Installer 1.5 onto target machine
  • Not required if targeting Windows XP

 

Compression

  • Unavailable if packaging as loose, uncompressed files
  • Otherwise 3 settings
    • None – fastest to install, but very large image
    • For Speed – fast to install, larger image
    • For Size – slower to install, smaller image

 

Authenticode Signature

  • Permits signing of project
  • Specify folder containing Certificate File used for signing
  • Specify folder containing Private Key for encrypting signed files
  • Optionally specify URL for timestamp server to use when signing files

 

Build

  • To Build, select project in solution explorer and choose Build
  • Many distribution options available, including

 

Distribute

Removable Media

  • Traditional mechanism
  • If setup app bigger than size of chosen medium must package output as appropriately sized CAB files and copy to required number of disks

Network Share

  • Used when destined for group of users on common network
  • Simplest method of distribution
  • Network administrator can set privileges to restrict access to specified groups or individuals

World Wide Web

  • For projects with wide distribution audience
  • Fundamentally same as via network share
  • Copy installation files to virtual Web directory

 

Deployment

  • If no bootstrapper, double click .MSI file
  • If bootstrapper included double click setup.exe

 

Lesson 2 – Configuring Setup Project

  • Windows Installer projects highly configurable
    • Target file locations
    • Create file associations
    • Check for pre-existing conditions
    • Execute custom actions

 

Setup Project Properties

  • Configure via project properties window
  • AddRemoveProgramIcon – icon for Add/Remove programs dialog
  • Author – Programs author
  • Description – Description of app
  • Keywords – Keywords associated with app
  • Localization – Locale for app
  • Manufacturer – Info about apps manufacturer
  • ManufacturerURL – URL for manufacturer
  • ProductName – Name of product
  • Subject – Subject of application
  • SupportPhone – Phone number for support
  • SupportURL – URL for support
  • Title – Title of app
  • DetectNewerInstall – When true looks for more recent version of app on computer and aborts install if one found
  • RemovePreviousVersion – When true looks for earlier versions of app on computer and removes them if found
  • Version – Version of the app
  • vsdrpDoNoRegister – Object requires no registration
  • csdrpCOM – Object registered as COM object
  • vsdrpCOMRelativePath – Object will be registered as isolated COM object
  • vsdrpCOMSelfReg – Object will be self-registered as COM object when installed
  • vsdrpFont – Object will be registered as Font upon installation

 

  • To register component upon install, select component and ser Register property to true

 

Installation Editors

  • 6 installation editors provided by IDE

 

File System Editor

  • Manipulate file system on target machine
  • 2 panes

o       Right = project output files

o       Left = directory structure of target computer

§         Application folder

§         User desktop

§         User program menu

§         Add additional folder by choosing Add Special Folder

  • Install to GAC

o       Assembly must be incorporated in project as loose file

o       Assembly must not be compressed with other project output

o       Sign assembly with strong name

o       Add GAC folder to File System Editor

o       Add assembly to GAC folder

Registry Editor

  • Create new registry entries
  • Write new values to existing entries
  • Left pane = registry structure on target
  • Right pane = registry key values

File Types Editor

  • Create association between file extension and application
  • Right click File Type Editor and choose Add File Type
  • Provide extension(s) separated by ; (do not prefix with .)
  • Default &Open action already present
  • Add additional actions by right clicking and choosing Add Action
  • For each additional action
    • Command = application to launch when action taken
    • Name = text appearing in context menu
    • Verb = verb used to invoke action
    • Arguments = values passed to application
  • When invoked app receives fully qualified file name as argument 1 followed by any additional arguments (as defined by action)

User Interface Editor

  • Alter visual interface user sees during installation
  • Consists of 2 trees
    • Install
    • Administrative Install
  • Trees represent dialog boxes user sees during install
  • Divided into 3 sections
    • Start
      • installer gathers info from user and machine
      • dialog boxes requiring choices placed here
      • at end installer checks for disk space, if not enough deployment aborted
    • Progress
      • Single dialog indicating installation in progress
    • End
      • Present information about installation to user
  • Administrative Install typically has more options in Start phase, e.g. may not have Installation Folder dialog present in User Install
  • Can add customisable dialogues to installation
    • Choose from variety of dialogs accepting input through check boxes, radio buttons or text boxes
    • Customise appearance via properties, e.g.  BannerText, BodyText, Button1Label, DefaultValue, etc.

Custom Actions Editor

  • Code to be executed during installation events
    • Install
    • Commit
    • Rollback
    • Uninstall
  • Add custom action(s) under appropriate event
  • Set properties for custom action(s)
    • Arguments – pass args to custom actions represented as .exe
    • Condition – Boolean statement to be evaluated before custom action executed (e.g. evaluate properties chosen in custom dialog boxes)
    • CustomActionData – pass additional required data to custom action
    • EntryPoint – name of method to execute for custom action (if blank same as source event, e.g. Install). Only applicable if custom action implemented as DLL
    • InstallerClass – true if custom action implemented as Installer class
    • SourcePath – path to file implementing custom action

Launch Conditions Editor

  • Specify conditions to be met on target machine before installation executes, e.g. determine version of Windows running
  • Editor divided into 2 parts – search and launch conditions
    • Create search by right clicking Search Target Machine and choose from
      • File – find specific file (including version, size and date)
      • Registry – find specific key
      • Windows Installer – find specified Windows Installer component
      • Specify property name for search – used by launch conditions to determine status of search
    • Create launch condition by clicking Launch Conditions
      • Specify name
      • Condition is string containing Boolean expression which if True permits installation to proceed. Can contain more than one expression joined by AND, OR, etc.
      • Message to display if condition fails

 

Installing Native Assembly

  • Apps generally deployed as MSIL
  • Where performance is critical may want to deploy as native code
  • Use ngen.exe to create native image for application

 

Verify Installed Assembly Security Policies

  • User PermView.exe to view permissions app requests
  • By default displays assembly level permissions
  • Use /DECL flag to examine all declared permissions (including those at class and method level)

Tuition

home
home
tuition
index
Last updated: 26th December 2006.
copyright © 2000 Greystoke Systems Ltd.
Web address: http://www.gsys.biz/Documents/Services/Tuition/MCP/70-316/ApplicationDeployment.htm