PDC2008: Windows Installer and ClickOnce in Windows 7
This week Microsoft's Professional Developers Conference (PDC2008) took place in Los Angeles. Several new and improved products and technologies were introduced there, like Windows 7, Windows Azure (Microsoft's "cloud" operating system) and Visual Studio 2010. I wasn't there but while I'm watching the session recordings I'll blog about PDC news that I think are interesting for setup developers and application deployment.
My first PDC2008 blog post is about Windows Installer and ClickOnce in Windows 7. Tyler Robinson, Lead Program Manager in the Application Deployment team, gave one session at PDC2008, and it's available as a recording on Channel 9:
Windows 7: Deploying Your Application with Windows Installer (MSI) and ClickOnce
Here are some bits from this session...
Windows Installer 4.5
The first 25 minutes of the 85 minutes session, Tyler actually talks about MSI 4.5, which is the latest released version of Windows Installer. He explains the intention behind the changes in MSI 4.5 and mentions how they can be combined to create smarter setups, illustrated with some demos.
Tyler also mentions that MSI 4.5 will be included in the next service packs for Windows Vista and Windows Server 2008, as opposed to Vista RTM, Vista SP1 and Server 2008 RTM which come with MSI 4.0.
ClickOnce, .NET Framework 3.5 SP1 and the new Client Profile Configuration Designer
From 0:24:50 to 0:38:20 Tyler talks about the ClickOnce functionality and improvements in the .NET Framework 3.5 SP1, technologies that are already available today. He also covers the .NET Client Profile which should streamline redistribution of the .NET Framework, not only for ClickOnce but also Windows Installer or other setup technologies (but he doesn't discuss the limitations of Client Profile).
At 0:31:15 Tyler introduces the Client Profile Configuration Designer which has just been made available as beta. It's essentially a tool that can chain multiple packages such as the .NET Framework and other prerequisites, as well as ClickOnce packages, MSI based setups or even scripts. It provides a seamless and customizable user interface with one progress bar across all the packages, and can either defer reboots requests until the end, or handle reboots between packages gracefully. Optionally it can also create a combined uninstall experience instead of separate entries in the Add/Remove Programs control panel. The Client Profile Configuration Designer can be downloaded from windowsclient.net/wpf/ in the Deployment section.
MSI 5 in Windows 7, and a first look at InstallShield 2010
0:41:15 is the starting point for the second part of Tyler's session where he covers new, pre-release products. Windows 7 will include MSI 5.0 which he promises will bring up to 20% faster installation times and improved reliability.
Uninstalling a digitally signed package from the Add/Remove Programs control panel will now show the appropriate UAC dialog with the gray banner and your product name instead of the "scary" version with the yellow banner and the warning about an "unknown program" that wants to modify your computer.
The Lock Permissions and Service Configuration standard actions have been improved. Tyler mentions inheritance in the LockPermissions table but doesn't go into more details, and I've haven't had the time yet to download the new SDK documentation.
You can now add hyperlink controls on dialogs and there's built-in print functionality for the EULA dialog.
To make systems administrators' lives easier the MSI team has added functionality to perform limited Windows Installer operations on "offline" disk images in WIM format. This enables administrators to inventory the applications in the image and perform patch applicability checks without having to boot into the image.
MSI 5 will improve support for per-user applications, allowing you to create a single msi package that can be installed per-machine or per-user, and only displays the elevation prompt if per-machine is selected. This includes automatic redirection of files and registry entries to per-user locations, which are now documented in the official guidelines. For example, ProgramFilesFolder is automatically set to %localappdata%\programs if you do a per-user install. Of course, a per-user installation can't do any machine-wide modifications like installing services or GAC assemblies. In his demo at 1:04:10 Tyler uses an alpha-release of InstallShield 2010 which he expects to go into beta early next year.
There was no information if or when MSI 5.0 will be made available as a redistributable for older versions of Windows.
Q&A
Finally, starting at 1:10:25, Tyler spends 15 minutes answering questions from the audience, or in some cases deferring the reply to the Windows Installer Team Blog.
This concludes my first PDC2008 post. I plan to write more in the next days.