Win & Web App Installers with WiX Benjamin Day Level: Intermediate.

Slides:



Advertisements
Similar presentations
Installation/Setup creation tools Stuart Eggerton Canberra ADUG Meeting 12 April 2005.
Advertisements

ACT! “Web” Plugins ACC Webinar (Part 1of 2) Brian Mowka and Jamie Aurand December 2010.
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
PRODUCT TRAINING Installation.
Creating a Dialog-Based Comet Windows Program Brian Levantine.
Will
© by Pearson Education, Inc. All Rights Reserved.
Visual Basic 2010 How to Program. © by Pearson Education, Inc. All Rights Reserved.2.
Visual Basic 2010 How to Program Reference: Instructor: Maysoon Bin Duwais slides Visual Basic 2010 how to program by Deitel © by Pearson Education,
Android: Hello World Frank Xu Gannon University. Steps Configuration ▫Android SDK ▫Android Development Tools (ADT)  Eclipse plug-in ▫Android SDK and.
BizTalk Deployment using Visual Studio Release Management
NETOP ONDEMAND What’s new in version 2.1? DECEMBER 09 NETOP ONDEMAND1.
Installation Requirements. Agenda Installation requirements Installation options Installing to correct folder locations Installing Windows resources Creating.
MSI-based installation Everything carried over from Office 2010 MAK, KMS and AD-based Activation Click-to-Run installation Built on App-V foundation.
National Instruments Confidential Deployment Techniques for LabVIEW ™ Applications Kennon Cotton LabVIEW R&D Group Manager.
SharePoint Development 101: Feature Design By Becky Isserman
Serious Team Foundation Server Customization Benjamin Day Benjamin Day Consulting, Inc Level: Advanced.
Introduction to SharePoint Development with VS2010 Paul Yuknewicz Lead Program Manager
Mobile Programming Lecture 1 Getting Started. Today's Agenda About the Eclipse IDE Hello, World! Project Android Project Structure Intro to Activities,
OFC302 Building Smart Document Solutions in Word & Excel Martin Sawicki Lead Program Manager.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
ITE 370. Deployment Deployment is the process used to distribute a finished application (or component) to be installed on other computers.
McGraw-Hill© 2007 The McGraw-Hill Companies, Inc. All rights reserved. 1-1.
Win & Web App Installers with WiX
Migration XenDesktop 7. © 2013 Citrix | Confidential – Do Not Distribute Migration prerequisites Set up a XenDesktop 7 Site, including the site database.
Serious Team Foundation Server Source Control Benjamin Day Benjamin Day Consulting, Inc.
DotNetNuke v4 on ASP.NET v2 Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application developer Conference.
Crystal Hoyer Program Manager IIS Team Preview of features that will be announced at MIX09 Please do not blog, take pictures or video of session.
Tutorial 11 Installing, Updating, and Configuring Software
Doing Something Useful with Enterprise Library 3.0 Benjamin Day Level: Intermediate.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
De-mystifying TFS Reporting Benjamin Day Level: Intermediate.
Developing Workflows with SharePoint Designer David Coe Application Development Consultant Microsoft Corporation.
Windows Azure Tour Benjamin Day Benjamin Day Consulting, Inc.
DotNetNuke Portal Private Assembly Development Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application.
IT 211 Project Integration and Deployment Lab #11.
Section 10: Assigning and Publishing Software Packages Using MSI Packages to Distribute Software Using Group Policy as a Software Deployment Method Deploying.
E-Commerce: Introduction to Web Development 1 Dr. Lawrence West, Management Dept., University of Central Florida Topics What is a Web.
GUI Environment Training Feb 12, 2004 Jeremiah Curtis
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
Creating Manageable Setups With The Windows ® Installer (Part 1 Of 2) Rob Collie, Program Manager Windows Installer Microsoft Corporation Jim Masson, Program.
Deploy.NET Applications with Ease Brian Noyes IDesign, Inc.
Project Deployment IT [211 CAP] How to convert your project to a full application.
DEV303 ASP.NET: Leveraging Visual Studio.NET For Web Projects Tony Goodhew Product Manager Microsoft Corp.
Deploying Software with Group Policy Chapter Twelve.
1 MSTE Visual SourceSafe For more information, see:
ANDROID APPLICATION DEVELOPMENT. ANDROID DEVELOPMENT DEVELOPER.ANDROID.COM/INDEX.HTML THE OFFICIAL SITE FOR ANDROID DEVELOPERS. PROVIDES THE ANDROID SDK.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
NET Development on Microsoft SharePoint Technology Part 4: Templates, Features, and Solution Deployment Mick Badran Breeze Training Consulting Trainer.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
Eliminate Team Build Headaches with Unit Tests, WiX and Virtualization Benjamin Day
Custom Authentication Providers For DotNetNuke v5.0 Stan Schultes – Sarasota, FL Florida Community Leader
Windows Azure: Is the Relational Database Dead? Benjamin Day
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
Improving Your Application with IntelliTrace #ITDevConnections.
ClickOnce Deployment (One-click Deployment)
Managing User Desktops with Group Policy
DevOps with ASP.NET Core and Entity Framework Core
Packaging and Deploying Windows Applications
How to be a SharePoint Developer
Automate Custom Solutions Deployment on Office 365 and Azure
Introduction to .NET Framework Ch2 – Deitel’s Book
Module 0: Introduction Chapter 2: Getting Started
Module 1: Getting Started
How to install the Enterprise Agent using Active Directory
Microsoft Visual Studio 2010 for Web Deployment
ClickOnce Deployment (One-click Deployment)
Presentation transcript:

Win & Web App Installers with WiX Benjamin Day Level: Intermediate

About the speaker Owner, Benjamin Day Consulting, Inc. – –Web: –Blog: Trainer –Visual Studio Team System, Team Foundation Server Microsoft MVP for C# Microsoft VSTS/TFS Customer Advisory Council Microsoft Cloud Services Advisory Group Leader of Beantown.NET INETA User Group

What is an installer? Usually an MSI –MicroSoft Installer Bundles all your files into a single package Handles the logic of setting up your app on a machine

Options for installing your app Simple (aka. No installer) –XCopy Deployment –Distribute a zip file Uncomfortable –Visual Studio Setup & Deploy Packages Full-featured –InstallShield –WiX –WISE

What does an installer do for you? Install & Uninstall Registry keys Folder paths COM registration Update logic Program menu shortcuts Way too hard for a non-technical user Non-repeatable without an automated installer

What is WiX? Windows Installer Xml Xml to describe Windows Installer MSI’s Developed by Microsoft –Around 1999 Released to Open Source in April 2004 Mostly written by Rob Mensching –

WiX is not dead Sourceforge site hasn’t been updated for about a year Weekly drops are still getting made Visual Studio setup is written in WiX WiX will be included as a project type in Rosario

How do you get started? Go to Download & install the latest 3.0.* release

Ok. Now what?

WiX Projects in Visual Studio “Votive”

Votive Projects Allow you to add, edit Intellisense Compiler support Defines variables to reference solution/project paths Source control

Votive Project Types WiX Project –Generates *.msi WiX Merge Module –Installer referenced from another installer –Generates *.msm WiX Library Project –Re-usable pieces of WiX

Demo 0 Quick tour of a Votive project

Other tools that comes with WiX Heat.exe –Jump starts WiX creation Candle.exe –WiX Compiler Light.exe –WiX Linker Dark.exe –Decompiler Smoke.exe –Validator

Basic WiX Elements - Root element w/ Namespaces - What you’re installing, “Refs”

<Product> Id –Guid for this product release UpgradeCode –Guid to identify the product Language –Language code –US English = 1033 Manufacturer Name Version

Demo 1 Use heat.exe to create a basic installer Put the installer into a Votive project Install Uninstall

Demo 2 Fix the file paths to use –$(var.ProjectName.ProjectDir) –$(var.ProjectName.TargetDir) –$(var.SolutionDir)

Defining the user interface –Defines user interface features –Reference a UI WixUIExtension.dll –Pre-defined UI Sequences –WixUI_Mondo, WixUI_Advanced, WixUI_FeatureTree, WixUI_InstallDir, WixUI_Minimal Decent documentation at

Demo 3 Add reference to WixUIExtension.dll Set the UI to WixUI_FeatureTree Install Uninstall

Customizing Folder Structure –Id There are lots of reserved paths in WiX –Name = friendly name Some Reserved Paths –ProgramFilesFolder –StartMenuFolder –DesktopFolder –AppDataFolder –WindowsFolder en-us/library/aa aspx

Directories, Components, & Files Directories have Components Components have Files   –A piece of the app –Can be installed or not installed

Demo 4 Use a to optionally install debug symbols (.pdb’s) Use a WiX preprocessor variable to only redistribute pdb’s in a Debug build

Program Menu Shortcuts is a child of Directory attribute = where the shortcut appears –StartupFolder –ProgramMenuDir TIP: To simplify installer development, create a quick uninstall shortcut

Create Start Menu Folders & Shortcuts Add a reference to any directory you’ll be using Reserved Id’s –Id=“ProgramMenuFolder” –Id=“ProgramMenuDir” –Id=“StartupFolder” Add a reference to the directory Id on the

BUG FIX! If you have a with a it must be the first in the If not, the shortcut will point to the wrong file Read more here: /08/09/23155.aspx

Add Icons To Shortcuts Add an after

Demo 5 Create the program menu directory structure Add shortcuts to the exe Add an uninstall shortcut Specify an for the shortcuts

More UI Customization Many customizations are available using existing ’s Customize the EULA –Supply path to.rtf document Supply your own banner for the installer –Create a 493 x 58 pixel bitmap (BMP) –Include it in your Votive project –

Still More UI Customization Launch your app with a custom action ExitDialog has a hidden checkbox Add – that points to WixShellExec Set –WIXUI_EXITDIALOGOPTIONALCHECKBOX –WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT –WixShellExecTarget Hook into the “DoAction” event on ExitDialog Add reference to WixUtilExtension.dll

Demo 6 Customize the EULA Add the banner Add a “run me now” custom action

Installing Web Apps Use heat.exe to start –HINT: don’t bother with the “website” option Edit the directory references Add reference to WixIisExtension.dll Point Set

Tips for Deploying Web Apps Put each app in a separate wxs file –IIS Service Host –Web UI –Admin Web UI During Dev/QA, use WiX to simplify deployment of releases –Generate and build WiX during TFS Team Build –Use or

Demo 7 Create a web app installer

Updating existing apps UpgradeCode Major Upgrades Minor Upgrades Uninstall existing versions

Best Practice Set Id=“*” –Auto generates a new id on compile Never change your upgrade code

Upgrade Syntax Set IncludeMaximum to “yes” to always uninstall

Tip for Vista Force a UAC elevation prompt 1 Very helpful when you need to write to HKLM

Demo 8 Add a registry key in HKLM during setup Run on Vista

What’s the setup.exe for? Setup.exe is the “bootstrapper” Installs pre-requisites Bootstrapper Manifest Generator –By David Guyer –VS –VS2008 (beta) ProjectReleases.aspx?ReleaseId=10652

Create a setup.exe bootstrapper with BMG Run BMG Choose New Project… Choose “MSBuild” project type Point BMG at your existing MSI Choose the prerequisites –On the Packages tab –Choose download source Run “Build”

Demo Use Bootstrapper Manifest Generator to make a setup.exe

Miscellaneous ICE = Internal Consistency Evaluator –Find problems in your installer

About the speaker Owner, Benjamin Day Consulting, Inc. – –Web: –Blog: Trainer –Visual Studio Team System, Team Foundation Server Microsoft MVP for C# Microsoft VSTS/TFS Customer Advisory Council Leader of Beantown.NET INETA User Group