+ All Categories
Home > Documents > Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Date post: 29-Dec-2015
Category:
Upload: logan-perkins
View: 226 times
Download: 10 times
Share this document with a friend
Popular Tags:
45
Lots of content – some still needs to be cut Working with App-V folks on request to include developer messaging in this deck Final demo still in-progress Dry Run Notes…
Transcript
Page 1: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Lots of content – some still needs to be cut Working with App-V folks on request to

include developer messaging in this deck Final demo still in-progress

Dry Run Notes…

Page 2: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Deploying Your Application with Windows Installer (MSI) and ClickOnce

Tyler RobinsonLead Program ManagerMicrosoft Corporation

PC42

Page 3: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Improving today’s application deployment experience Windows Installer (MSI) 4.5 ClickOnce in .NET Framework 3.5 SP1

Improving tomorrow’s application deployment experience Windows Installer 5.0 in Windows 7 Per-User Applications in Windows 7

Q & A

Agenda

Page 4: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Deploying client applications is becoming more complex Larger applications Multiple packages Complex dependencies Difficult to patch

All of this makes for a bad user experience…

Application Deployment Today

Page 5: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Application Deployment Today

Multiple UAC prompts Long installation times

Files left over after a failed install or uninstall

Unnecessary add/remove programs control panel entries

Page 6: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Improving Today's Experience

Windows Installer 4.5 Single transaction for multiple packages Multiple-package logic handled from within

MSI package More robust patching

ClickOnce in .NET Framework 3.5 SP1 Reduced size and install time for

.NET Framework Customizable user experience for

installing ClickOnce pre-requisites

Page 7: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Version 4.5

Windows Installer

Page 8: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Enables packaging and patching agility Down-level redistributable and SDK

Available on the Microsoft Download Center All new features and behaviors are opt-in

Reduce application compatibility impact Popular authoring tools already support it

InstallShield InstallAware WiX

Windows Installer 4.5

Page 9: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Multiple Package Transaction

Product A

External Chainer Transaction

RollbackUninstall

Product A

Install

Product B Failure

Rollback

Install

Product B Failure

Install

Page 10: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Multiple Package Transaction

UAC credential prompt: Per-transaction versus Per-package

Reboot Handling Transaction boundary Multi-package PFR handling

Files in use handling Transaction owner semantics Transaction can be embedded

in MSI package

Page 11: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

How to use it Windows Installer 4.5 must be present

on the machine Use new MsiBeginTransaction to start the

transaction Call any number of MsiInstallProduct

(or patch) Use new MsiEndTransaction to commit

the transaction

Multiple Package Transaction

Page 12: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Adopting Windows Installer 4.5 Multiple Package Transaction

Demo

Page 13: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Built-in Windows Installer UI is limited There has always been the ability to write a

custom external UI handler, but it… Is difficult to write Increases deployment complexity Does not work for all scenarios

New single-transaction features required a way to control transaction logic from within an MSI package

Windows Installer Embedded UI

Page 14: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

New ability to include an embedded UI DLL in your package Can do all the work that an external

setup.exe would do Allows custom hooks in operations like uninstall

and repair Not restricted to just UI

Eg: Can manage transaction logic as well

Windows Installer Embedded UI

Page 15: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

How to use it Windows Installer 4.5 must be present

on the machine Create an embedded UI DLL that exports the

InitializeEmbeddedUI, EmbeddedUIHandler, and ShutdownEmbeddedUI functions

Use the MsiEmbeddedUI table to specify your DLL

Windows Installer Embedded UI

Page 16: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

WordWord

Outlook

Installs Spell Checker v12.0

Installs Spell Checker v12.5

Updates Spell Checker to v12.6

Install Word Install Outlook Apply a patch to Word Uninstall the patch to Word

WordOutlook

Word Patch

Word

Outlook

Updates Spell Checker to v12.0

Design Change: Windows Installer patch uninstall behavior should consider the global machine state instead of just the product state

Requirement: Ability to keep the highest version of a shared component when a patch to it is uninstalled

Windows Installer Patching Improvements

Page 17: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Windows Installer Patching Improvements

Installs Spell Checker v12.0

Installs Spell Checker v12.5

Updates Spell Checker to v12.6

Install Word Install Outlook Apply a patch to Word Uninstall the patch to Word

Updates Spell Checker to v12.5

WordWord

Outlook

WordOutlook

Word Patch

Word

Outlook

Spell Checker

12.0

MSI Datastore

Spell Checker 12.0

Word’s cache Spell Checker

12.5

Spell Checker

12.6Spell Checker 12.5

Outlook’s cache Spell Checker

12.5

Page 18: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Windows Installer Patching Improvements

Additional improvements include support for custom actions that run during patch uninstallation

How to take advantage of it Opt-in to the new shared component uninstall

behavior by setting the msidbComponentAttributesShared attribute on your componenet

Patch uninstall custom actions can be created by marking the msidbCustomActionTypePatchUninstall attribute

Page 19: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Windows Installer 4.5 redistributable is available for… Windows XP SP2 and SP3 and XP 64-bit Editions Windows Server 2003 SP2 Windows Vista RTM and SP1 Windows Server 2008

Provided as .EXE on XP and Server 2003 systems and .MSU on Vista and Server 2008 systems

MSI.DLL version numbers are slightly different on various platforms 4.5.6000.20817 on Windows Vista RTM 4.5.6001.22162 on Windows Vista SP1 and Server 2008 4.5.6001.22159 on Windows XP and Server 2003

Deploying Windows Installer 4.5

Page 20: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

.NET Framework 3.5 SP1

ClickOnce

Page 21: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

ClickOnce applications have dependencies too .NET Framework 3rd party dependencies

No seamless way to integrate .NET FX + dependencies + application

Deploying ClickOnce Applications

Page 22: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Deploying ClickOnce Applications

Click install … Install the .NET Framework…

Install other prerequisites…

Install the application…

Page 23: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Typical .NET FX Packaging is large and difficult to manage installation experience .NET FX 3.5 SP1 Installer ~40-200 MB Developers need a smaller Framework that will

fit the needs of a Client platform New .NET Client Profile

Subset of assemblies contained in .NET Framework 3.5 SP1

.NET Framework Client ~27 MB Lightweight bootstrapper Reduce user clicks Fast installation

Deploying ClickOnce Applications

Page 24: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

.NET Client Profile Deployment Scenarios

Operating System No FX NETFX 1.1 NET FX 2.0/SP1

NET FX 3.0/SP1

NETFX 3.5

Windows XP SP2+ Client Install Full Install Full Install Full Install Full Install

Windows Vista NA NA Full Install Full Install Full Install

Windows Server 2003

Full Install Full Install Full Install Full Install Full Install

Windows Server 2008

NA NA Full Install Full Install Full Install

.NET Client Profile Bootstrapper will detect what versions of the .NET Framework are installed and update the computer accordingly

Client Install = .NET Client redistributables will be installedFull Install = .NET Framework 3.5 SP1 full installation

Page 25: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Development For .NET Client

Development for .NET Client supported on all Visual Studio 2008 editions

Project Property that allows application to target the Client Framework Targeting the Client Frameworks configure the

VS Build system to warn users about their use of Assemblies not included in the client

Adds an Application Configuration file to the project that will allow the runtime to allow Client application to run on the Client

Page 26: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Designer Tool that will allow developers to customize the deployment experience of their applications

Uses the Client Profile general purpose bootstrapper to deploy your application and all its prerequisites.

Can be used to deploy applications requiring the Client Profile or full .NET Framework 3.5 SP1

Client Profile Configuration Designer

Page 27: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Deploying a ClickOnce application created with the Client Profile Configuration Designer

Demo

Page 28: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Support for 3rd party web browsers Relaxed signing requirements Deployment of Office Add-Ins

Visual Studio Tools for Office Associate file types to ClickOnce application

Additional ClickOnce Improvements

Page 29: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

All the technologies you have just heard about are available today Windows Installer 4.5 and .NET Framework 3.5 SP1

are available from the Microsoft Download Center The .NET Client Profile Configuration Designer is in

beta and available from <insert link> Popular authoring tools such as InstallShield

and Visual Studio support these features Developers should consider taking advantage

of these new releases to improve their end-user experience

In Summary …

Page 30: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Windows Installer 5.0 andPer-User Applications

Windows 7

Page 31: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

No major breaking changes If your installation works on Vista it should

work on Windows 7 Windows Installer 4.5 and .NET Framework

SP1 features are in the box Faster and easier deployment with

fewer dependencies Performance improvements

Expect to see 10 – 20% reduction in install operation times for larger applications

Greater application deployment flexibility Windows Installer 5.0 with per-user

application support

Application Deployment In Windows 7

Page 32: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Improved UAC experience Proper UAC dialog on uninstall for signed apps

Better performance and reliability Reduce need for Custom Actions

Improve current support for LockPermissions and ServiceInstall

Add new support for Print Button and Hyperlink controls

Support “offline” inventory Applications installed to a WIM can now be

inventoried and have patch applicability checks Enable “per-user” application support…

Windows Installer 5.0

Page 33: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

The Value Of Per-User Deployment In Windows

Personal Empowerment• User is in control• Standard user installs applications

on users’ schedule (in accordance with policy)

Safer install and removal of Per-User applications• Applications are installed to the

user’s profile • Removes risk of corrupted OS

state• One user installing an application

doesn’t impact another user• No elevation necessary for

installation

Page 34: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Developers lack cohesive guidelines for creating a Per-User deployment package

Incomplete OS support No pre-defined file location to install

Per-User applications OS Extension points not guaranteed to be per-user

Developers can not create a single package that installs both per-user and per-machine Wrapper to include both Per-User package and per

machine package in same deployment As a result limited availability of

Per-User applications

Challenges With Per-User Deployment Today

Page 35: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Customer experience is consistent for Per-User and Per-Machine install Customer chooses the type of installation Same Windows Installer package for both

Additional and consistent OS extension points Already supported OS Registration

documented on MSDNFor Example: COM, File Associations

Additional Windows Shell Registrations enabled with Per-User support in Windows 7

AppPaths Preview Handlers AutoPlay Handler

Benefits Of Per-user Deployment On Windows 7 With Windows Installer

Page 36: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Per-User applications do not support some important OS extension points Set Program Access & Computer Defaults (SPAD) Default Programs

Additionally… Any machine-wide prerequisites must

be installed separately Your package can not install services or drivers Your application can not have a core purpose to serve

all users of the computer, such as anti-virus Patching can only be done when the user is logged-on Per-User deployment is only available on Windows 7

Considering Per-User deployment

Page 37: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Identify Package as per-user capable by setting the Allusers Property = 2, and Msiinstallperuser property = 1

Specify files to be written to a re-directable folder (Impact is contained within the user’s profile)

Specify private dynamic application state data in application’s data folder

Specify Registry keys as re-directable registry keys or HKCU (ie: root key in Registry Table is -1, 0 or 1)

Use only per-user capable registrations and custom actions

Building A Per-User MSI Package

Page 38: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Using InstallShield to create a Per-User Windows Installer Package

Demo

Page 39: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

You can use Windows Installer 4.5 and ClickOnce in .NET Framework 3.5 SP1 to help improve application deployment experiences today!

Windows 7 provides additional “out of the box” improvements for application deployment Improved performance and reliability Many dependencies are in the box Minimal application compatibility impact

Per-User application deployments on Windows 7 can be used for an easier and safer end-user experience

Take Aways …

Page 40: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Windows Installer Team Blog http://blogs.msdn.com/windows_installer_team

Windows Installer Start Page on MSDN http://msdn.microsoft.com/en-us/library/aa372866.aspx

Windows Installer 4.5 Redistributable http://go.microsoft.com/fwlink/?LinkID=120486

Windows Installer 4.5 SDK http://go.microsoft.com/fwlink/?LinkID=120527

ClickOnce Documentation on MSDN http://msdn.microsoft.com/en-us/library/t71a733d.aspx

Client Profile Configuration Designer (Beta)

Additional Resources

Page 41: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Questions?

Page 42: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Evals & Recordings

Please fill

out your

evaluation for

this session at:

This session will be available as a recording at:

www.microsoftpdc.com

Page 43: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Please use the microphones provided

Q&A

Page 44: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market

conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 45: Tyler Robinson Lead Program Manager Microsoft Corporation PC42.

Recommended