An Overview Of ClickOnce Deployment. Guy Smith-Ferrier. Courseware Online. gsmithferrier@coursewareonline.com. Courseware Online



Similar documents
Deploying Applications with ClickOnce

Smart Client Deployment with ClickOnce. Brian Noyes IDesign, Inc. (

Last edited on 7/30/07. Copyright Syncfusion., Inc

Zanibal Plug-in For Microsoft Outlook Installation & User Guide Version 1.1

TECHNICAL DOCUMENTATION SPECOPS DEPLOY / APP 4.7 DOCUMENTATION

DEPLOYING A VISUAL BASIC.NET APPLICATION

ClickOnce Security. ClickOnce Security Overview. of different aspects with respect to security. You need to consider

Team Foundation Server 2013 Installation Guide

FAQ CE 5.0 and WM 5.0 Application Development

Installing Microsoft Exchange Integration for LifeSize Control

Shavlik Patch for Microsoft System Center

Microsoft Corporation. Project Server 2010 Installation Guide

NetBeans IDE Field Guide

How to install and use the File Sharing Outlook Plugin

Medtech Clinical Audit Tool Installation Guide

BUILDER 3.0 Installation Guide with Microsoft SQL Server 2005 Express Edition January 2008

8x8 Virtual Office Telephony Interface for Salesforce

This tutorial provides detailed instructions to help you download and configure Internet Explorer 6.0 for use with Web Commerce application.

Trial environment setup. Exchange Server Archiver - 3.0

Administration Guide. . All right reserved. For more information about Specops Deploy and other Specops products, visit

Dovico Timesheet v12 INSTALLATION GUIDE

Trend Micro Incorporated reserves the right to make changes to this document and to the products described herein without notice.

Pcounter Web Report 3.x Installation Guide - v Pcounter Web Report Installation Guide Version 3.4

WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide

HELIX MEDIA LIBRARY INSTALL GUIDE FOR WINDOWS SERVER 2003 Helix Media Library Version 1.1. Revision Date: July 2011

GE Intelligent Platforms. Activating Licenses Online Using a Local License Server

Introduction and Overview

Secret Server Installation Windows 8 / 8.1 and Windows Server 2012 / R2

ACCEPT THE SECURITY CERTIFICATE FOR THE WEB FILTER

Migrating helpdesk to a new server

User Manual. Onsight Management Suite Version 5.1. Another Innovation by Librestream

NSi Mobile Installation Guide. Version 6.2

Getting Started with the Ed-Fi ODS and Ed-Fi ODS API

Outlook Profile Setup Guide Exchange 2010 Quick Start and Detailed Instructions

XIA Configuration Server

GP REPORTS VIEWER USER GUIDE

Browser Client 2.0 Admin Guide

Archive Attender Version 3.5

Deploying Microsoft Operations Manager with the BIG-IP system and icontrol

RoomWizard Synchronization Software Manual Installation Instructions

XenDesktop Implementation Guide

Out n About! for Outlook Electronic In/Out Status Board. Administrators Guide. Version 3.x

Team Foundation Server 2010, Visual Studio Ultimate 2010, Team Build 2010, & Lab Management Beta 2 Installation Guide

4cast Client Specification and Installation

Distributing SMS v2.0

Configuring.NET based Applications in Internet Information Server to use Virtual Clocks from Time Machine

Using InstallAware 7. To Patch Software Products. August 2007

System Administration Training Guide. S100 Installation and Site Management

Installing Oracle 12c Enterprise on Windows 7 64-Bit

Web VTS Installation Guide. Copyright SiiTech Inc. All rights reserved.

Desktop Surveillance Help

Installing Windows Server Update Services (WSUS) on Windows Server 2012 R2 Essentials

SQL Server 2005: Report Builder

ION EEM 3.8 Server Preparation

DigitalPersona Privacy Manager Pro

Clinical Scheduling for Windows

User Installation Guide

Getting Started with Sitecore Azure

STATISTICA VERSION 9 STATISTICA ENTERPRISE INSTALLATION INSTRUCTIONS FOR USE WITH TERMINAL SERVER

isupplier PORTAL ACCESS SYSTEM REQUIREMENTS

+27O.557+! RM Auditor Additions - Web Monitor. Contents

Appendix E. Captioning Manager system requirements. Installing the Captioning Manager

Pre-Requisites: PC and Browser Configuration Guide v1.3

WA2256 Responsive Mobile Web Development with HTML5, CSS3, JavaScript, and jquery Mobile. Classroom Setup Guide. Web Age Solutions Inc.

Client Program Installation Guide

How to configure the DBxtra Report Web Service on IIS (Internet Information Server)


How to move a SharePoint Server bit environment to a 64-bit environment on Windows Server 2008.

Outlook Add-in Deployment Guide

Novell ZENworks 10 Configuration Management SP3

AvePoint Meetings for SharePoint On-Premises. Installation and Configuration Guide

Wavecrest Certificate

INSTALLATION INSTRUCTIONS FOR UKSSOGATEWAY

Reference and Troubleshooting: FTP, IIS, and Firewall Information

WCFStormHost User Guide

Trend Micro Incorporated reserves the right to make changes to this document and to the products described herein without notice.

System Configuration Guide For Desktop Originator /Desktop Underwriter July 2013

Installing OneStop Reporting Products

WebsitePanel Installation Guide

Installation Guide for Pulse on Windows Server 2012

User s Guide for OpenERP Microsoft Outlook Free Plug-in 1.0 By Axelor

Virtual Office Remote Installation Guide

Exchange Outlook Profile/POP/IMAP/SMTP Setup Guide

STEP BY STEP IIS, DotNET and SQL-Server Installation for an ARAS Innovator9x Test System

Issue Tracking Anywhere Installation Guide

Installation and Upgrade Guide

Unicenter NSM Integration for Remedy (v 1.0.5)

3 Setting up Databases on a Microsoft SQL 7.0 Server

new Business Online Technical Troubleshooting Guide

Microsoft Dynamics GP. econnect Installation and Administration Guide Release 9.0

Digipass Plug-In for IAS. IAS Plug-In IAS. Microsoft's Internet Authentication Service. Installation Guide

OrgPublisher EChart Server Setup Guide

This walk-through was created using Windows XP as a guide, however alternate versions of the Windows OS will be very similar in procedure as well.

NetWrix Password Manager. Quick Start Guide

PureEdge Viewer Training Guide

Setting up FileMaker 10 Server

Richmond SupportDesk Web Reports Module For Richmond SupportDesk v6.72. User Guide

National Fire Incident Reporting System (NFIRS 5.0) Configuration Tool User's Guide

Transcription:

An Overview Of ClickOnce Deployment Guy Smith-Ferrier Courseware Online gsmithferrier@coursewareonline.com 1

Author of.net Internationalization, Addison Wesley, ISBN 0321341384 Due Summer 2005 2

ClickOnce Vision To bring the ease and reliability of web application deployment to Windows Forms applications 3

Agenda Online applications How it works Client Requirements Online and Offline applications How it works The ClickOnce Cache ClickOnce Manifest Files Programmatic Updating Publishing Using msbuild ClickOnce Security ClickOnce vs. The Windows Installer 4

Information Sources Essential ClickOnce, Duncan Mackenzie, Addison Wesley Not published yet The Magic Of ClickOnce http://www.ondotnet.com/lpt/a/5205 InstallSite: Microsoft ClickOnce Technology http://www.installsite.org/pages/en/clickonce.htm ClickOnce In Visual Studio 2005 http://mtaulty.com/blog/archive/2004/07/05/524.aspx MSDN TV - Introducing ClickOnce: Web Deployment for Windows Forms Applications http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/ 20040108clickoncejc/manifest.xml 5

Information Sources (continued) Smart Client Developer Center Home: ClickOnce http://msdn.microsoft.com/smartclient/understanding/windowsforms/2.0/feature s/clickonce.aspx Introducing Client Application Deployment with "ClickOnce" http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnwinforms/html/clickonce.asp Deploying Windows Forms Applications with ClickOnce http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnreal/html/realworld12012004.asp Choosing Between ClickOnce and Windows Installer http://msdn.microsoft.com/library/default.asp?url=/library/enus/dndotnet/html/clickoncevsinstaller.asp Deploy and Update Your Smart Client Projects Using a Central Server http://msdn.microsoft.com/msdnmag/issues/04/05/clickonce/default.aspx 6

Information Sources (continued) ClickOnce Deployment for Windows Forms Applications http://msdn2.microsoft.com/library/wh45kb66.aspx ClickOnce security and download on demand http://blogs.msdn.com/misampso/archive/2004/05/06/127570.aspx How ClickOnce Manifest Generation works with MSBuild http://www.windowsforms.net/articles/clickonce_msbuild.aspx ClickOnce and Security http://www.develop.com/downloads/dm_clickonce.pdf Troubleshooting ClickOnce Deployment http://msdn2.microsoft.com/library/ms165433(en-us,vs.80).aspx 7

Information Sources (continued) Configuring ClickOnce Trusted Publishers http://msdn.microsoft.com/smartclient/default.aspx?pull=/library/enus/dnwinforms/html/clickoncetrustpub.asp Simplify App Deployment with ClickOnce and Registration-Free COM http://msdn.microsoft.com/msdnmag/issues/05/04/regfreecom/default.aspx Automated Smart Client Deployment And Update http://www.theserverside.net/articles/showarticle.tss?id=automatedsmartclient 8

Before ClickOnce.NET Framework 1.0 and 1.1 support Zero Touch Deployment (also called No Touch Deployment, HREF Deployment and HTTP Download) The Patterns And Practices Group released the Updater Application Block which supports some of the features of ClickOnce http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnbda/html/updater.asp The Updater Application Block 2 is simpler and closer to ClickOnce http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnpag2/html/updaterv2.asp 9

Offline Example Create a Windows Forms application and call it CustomerCare1 Set Form1.Text to "Customer Care" and add a button Select Build Publish CustomerCare1 Click Next Select the "No" radio button Click Next Click Finish In the CustomerCare1 web page click on the Run CustomerCare1 button In the Security Warning dialog click on Run 10

Offline Example (continued) Close the application Click on the Run button again and observe that the application doesn't show the "Downloading" dialog and it starts up faster Close the application and close the web page Add a button to CustomerCare1, publish it again and click on the Run button Observe that the application shows the "Downloading" dialog as it downloads the updated copy 11

How Does It Work? The Publish Wizard:- creates a new Virtual Directory in IIS using the name of the application (e.g. CustomerCare1) creates a new folder beneath the Home Directory (e.g. C:\Inetpub\wwwroot\CustomerCare1) adds a customized setup.exe (the Bootstrapper) to the new folder adds a Publish.htm page which is shown to the user adds a deployment manifest (e.g. CustomerCare1.application) adds a version-specific deployment manifest (e.g. CustomerCare1_1_0_0_0.application) creates a new folder for the latest version of the application (e.g. CustomerCare1_1.0.0.0) adds the application (e.g. CustomerCare1.exe.deploy) adds an application manifest (e.g. CustomerCare1.exe.manifest) When the application is run it is cached so it runs faster next time 12

How Does Publish.htm Work? Publish.htm includes:- a Button called InstallButton with an href of "setup.exe" a section called BootstrapperSection Publish.htm includes JavaScript which is automatically executed to determine if the.net Framework 2.0 is installed If it is installed:- BootstrapperSection.style.display is set to none InstallButton.href is set to the application's deployment manifest (e.g. CustomerCare1.application) 13

ClickOnce Client Requirements For browser access the client must support URL activation e.g. Internet Explorer Non-Internet Explorer browsers (e.g. Mozilla, Firefox) will not work because they look for the application files in the same location as the manifest files Outlook MSN Explorer AOL 14

ClickOnce Client Requirements (continued) Before the application can be run the client must have:- Windows 98 or higher the.net Framework 2.0 The Windows Installer 2.0 Whatever pre-requisites have been dictated by the publisher ClickOnce can install all of these using the ClickOnce Bootstrapper The Bootstrapper requires Administrator access to install prerequisites (but not to install the ClickOnce application) 15

Online And Offline Example Create a Windows Forms application and call it CustomerCare2 Set Form1.Text to "Customer Care 2" and add a button Select Build Publish CustomerCare2 Click Next Select the "Yes" radio button Click Next Click Finish In the CustomerCare2 web page click on the Install button In the Security Warning dialog click on Install 16

Online And Offline Example (continued) Show that an item has been added to the Start menu Show that an item has been added to Add/Remove Programs Close the application and close the web page Add a button to the form and publish it again In Internet Information Services select the Default Web Site, right click and select Stop In Windows select Start All Programs <Company Name> CustomerCare2 The original, 'cached' program is run and not the new version 17

Online And Offline Example Close the application (continued) Restart the Default Web Site Run the application In the Update Available dialog click Ok and the updated application is run 18

How Does It Work? The Publish Wizard performs the same steps as before except:- Publish.htm says "Install" instead of "Run" (but the functionality is identical) The shortcut added to the Start menu is a.appref-ms file.appref-ms files are MIME files and are automatically executed by the operating system's MIME filter The.appref-ms file contains the URL to the.application file (the deployment manifest) on the web server.application and.appref-ms extensions invoke COM routines in dfshim.dll which launch the ClickOnce update and download component The ClickOnce update and download component (dfsvc.exe) manages the deployment and update of the application dfsvc.exe allegedly times out after 15 minutes of inactivity If the application is partially trusted the ClickOnce runtime (AppLaunch.exe) is run to handle the sandboxing and execution of the application Otherwise the application is run normally 19

How Does It Work? (continued).appref-ms.application (Server) dfshim.dll ClickOnce Update And Download (dfsvc.exe) ClickOnce Runtime (AppLaunch.exe) WindowsApplication1.exe (Full Trust) WindowsApplication1.exe (Partial Trust) 20

The ClickOnce Cache Online and installed applications are held on the client computer in the ClickOnce cache The cache is in <Documents>\<User>\Local Settings\Apps e.g. \Documents and Settings\Administrator\Local Settings\Apps The cache contains the complete application The application's assemblies, its configuration files, its data Applications cannot be installed outside of the cache Applications cannot be installed to a specific location There is no publicly available "ClickOnce Cache API" The cache can be managed by regular file I/O methods 21

The ClickOnce Cache Size The maximum size for all online applications is 100Mb This can be changed in the registry:- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersio n\deployment\onlineappquotainkb The value is in Kb so 200Mb is 204800 There is no restriction on installed applications Installed applications do not count towards the online applications maximum size The cache contains the current and previous version:- Cached online applications are aged When the cache is full the least recently used application(s) is/are deleted Old online apps can be programmatically purged using file delete methods Cached installed applications are not aged 22

ClickOnce Manifest Files Description Deployment Manifest Contains information about the application including the current version number Application Manifest Contains information about the files, dependencies and security requirements of a specific version Responsibility Administrator Developer Extension.application.exe.manifest Location Signing The published folder e.g. C:\Inetpub\wwwroot\WindowsApplication1 Deployment manifest files are always signed (using XMLDSIG) and cannot be tampered with The specific version of the published application e.g. \Inetpub\wwwroot\WindowsApplication1\ WindowsApplication1_1.0.0.3 Application manifest files are always signed (using XMLDSIG) and cannot be tampered with 23

Manifest Generation and Editing Tool (MAGE) The Manifest Generation and Editing Tool (MAGE) is a.net Framework 2.0 SDK tool for creating and editing ClickOnce manifest files There are supposed to be two versions (Mage.exe is a command line tool and MageUI.exe is a GUI) but they both do the same thing in Beta 2 MAGE and Visual Studio 2005 should offer similar functionality by the time that Visual Studio 2005 ships 24

Command Line Parameters ClickOnce applications can accept command line parameters as arguments in the application manifest's URL http://localhost/windowsapplication1.application?culture=en-gb Edit the.appref-ms file (in \Documents and Settings\<UserName>\Start Menu\Programs\<CompanyName>\WindowsApplication1) using NotePad Command line parameters must be enabled In the project's Publish properties click the Options button and check "Allow URL parameters to be passed to application" 25

Programmatic Updating Turn off automatic updating In the Publish properties, click the Updates button and uncheck the "Application should check for updates" checkbox Add a reference to System.Deployment.dll Add the following directive to the code:- using System.Deployment.Application; Add a button to the main form with the following code:- 26

Programmatic Updating (continued) ApplicationDeployment applicationdeployment = ApplicationDeployment.CurrentDeployment; if (applicationdeployment.checkforupdate()) { } applicationdeployment.update(); Application.Restart(); Publish the application and install it Change the application and publish it again Run the application and show that the new version is not automatically downloaded Click on the button to update the application 27

Programmatic Updating (continued) Change the button's code to:- ApplicationDeployment deployment = ApplicationDeployment.CurrentDeployment; UpdateCheckInfo updatecheckinfo = deployment.checkfordetailedupdate(); if (updatecheckinfo.updateavailable) { } if (MessageBox.Show("An update is available" + { } System.Environment.NewLine + "Version " + updatecheckinfo.availableversion + " (" + updatecheckinfo.updatesizebytes.tostring() + " bytes)" + System.Environment.NewLine + "Update now?", "", MessageBoxButtons.YesNo) == DialogResult.Yes) deployment.update(); Application.Restart(); 28

Uses For Programmatic Updates on demand Updating The user can check for updates manually Download load balancing The client could contain logic which determines which day or hour the user checks for downloads based upon data specific to the client (e.g. IP address, first letter of user name) Beta programs The client could compare the new minor version number with the old and only download it if the client has been registered as a beta client 29

Publishing A ClickOnce Application Using msbuild To publish a ClickOnce application without using Visual Studio 2005 use the.net Framework 2.0 SDK's msbuild msbuild /target:publish Not all IDE settings apply to msbuild "Automatically increment revision with each release" is not respected when using msbuild msbuild does not copy the published application from the "publish" folder to the deployment location You must perform this step manually To publish to a specific location use the PublishUrl property:- msbuild /target:publish /property:publishurl= http://localhost/windowsapplication1 30

ClickOnce And Internationalized Applications If you publish a Windows Forms application which has satellite assemblies the satellite assemblies will not be included in the manifest by default Set the "Publish language" in Visual Studio 2005 to the language which should be deployed with the application The "Publish language" also affects the language used in ClickOnce dialogs You need to install the.net Framework Language Pack which matches the "Publish language" if you want your ClickOnce dialogs to use that language 31

Publishing ClickOnce Internationalized Applications Using msbuild To publish for a single culture:- msbuild /target:publish /property:targetculture=fr To publish for all cultures:- msbuild /target:publish /property:targetculture=* In addition you might want to:- Specify a localized Product Name msbuild /target:publish /property:productname="zona De Tiempo" Add one or more.net Framework Language Packs to the prerequisites 32

Manifest Signing Application and deployment manifests are signed using an XML Digital Signature (XMLDSIG) Manifests which are altered without being signed again result in the error:- The manifest XML signature is invalid Assemblies are signed using the publisher certificate (.pfx) You cannot sign assemblies using a strong name (.snk) Signing assemblies with a strong name would be bad in a ClickOnce application:- An assembly which uses a signed assembly must be rebuilt to use the new signed assembly when the signed assembly is changed Changing one assembly could mean rebuilding many assemblies and therefore cause unnecessary downloads 33

ClickOnce Security Zones ClickOnce applications adopt the security zone that they are installed from Not the location they are run from ClickOnce Application Online only Online and offline installed from web Online and offline installed from file server Offline installed from CD-ROM Security Zone Internet Internet Local Intranet Local Computer (Full Trust) 34

Calculating Security Permissions You can calculate your applications' security permissions in two ways:- In Visual Studio open the Security tab of the project's Properties Click on the Calculate Permissions button In a command prompt run permcalc.exe:- permcalc WindowsApplication1.exe 35

Debug In Zone If you build, publish and debug your application on a single machine your debugging experience will be unrealistic You will be debugging with Full Trust Visual Studio can set the permissions which are used during debugging to a set of permissions other than full trust In Solution Explorer right click the project and select Properties Select the Security tab and click "Enable ClickOnce Security Settings" In the "Zone your application will be installed from" combo box set the settings to either Local Intranet or Internet 36

Trust Licenses Trust licenses allow you to create ClickOnce applications which are trusted without the user being involved with the trust process The benefit is that you can deploy ClickOnce applications which have elevated security without your users having to answer trust questions 37

The Trusted Application Deployment Process The user's machine is configured to accept trust licenses from the given trust license issuer This is a one-time touch to the user's machine using the.net 2.0 Configuration Tool The developer requests a trust license (.tlic file) from the trust issuer and gives the issuer the application manifest (which includes the requested permissions) The trust issuer returns a trust license to the developer The developer signs the application with the trust license 38

ClickOnce vs The Windows Installer ClickOnce The Windows Installer Specify The Installation Folder No Yes Install For All Users No Yes Create File Associations No Yes Create Shell Extensions No Yes Install.NET Components In The GAC No Yes Install COM Components In The Registry No Yes Run Custom Actions No Yes Write To Registry No Yes Administer ODBC No Yes Create And Apply.msp Patches No Yes 39

ClickOnce And COM Components ClickOnce applications can use COM components. You have three choices:- If your clients use Windows XP then Visual Studio can generate an application manifest which uses Registry-Free COM components If you can't use Registry-Free COM you can install the COM components as a custom pre-requisite using the ClickOnce Bootstrapper The COM components will not be part of the application manifest and will not be auto-updated If you can't use Registry-Free COM and you want the COM components to be auto-updated add them to the application and change the application so that it invokes the COM object entry points directly (without using COM) 40

ClickOnce And Longhorn The following enhancements are expected in the Longhorn version of ClickOnce:- Background Intelligent Transfer Service (BITS) Create File Associations (without requesting additional security permissions) Specify the application's privacy settings Create Shell Extensions 41

ClickOnce And.NET Framework 1.1 Windows Forms Applications You can use ClickOnce to install.net Framework 1.1 Windows Forms Applications ClickOnce requires that the entry point into the application is a.net Framework 2.0 application Your.NET Framework 2.0 application can simply invoke your.net Framework 1.1 application Invoking a process requires a higher level of trust Add a custom prerequisite for the.net Framework 1.1 42

Summary ClickOnce brings the ease of web deployment and update to Windows Forms applications The ClickOnce runtime and ClickOnce cache ensure there is minimal touch to the client ClickOnce applications have many options for configuring deployment and updates including programmatic updates Security is build in to ClickOnce and is not optional 43