Home > Store

Smart Client Deployment with ClickOnce: Deploying Windows Forms Applications with ClickOnce

Register your product to gain access to bonus material or receive a coupon.

Smart Client Deployment with ClickOnce: Deploying Windows Forms Applications with ClickOnce

eBook (Watermarked)

  • Your Price: $27.19
  • List Price: $33.99
  • About Watermarked eBooks
  • This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.

    The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

    Watermarked eBook FAQ


  • Copyright 2007
  • Dimensions: 7" x 9-1/4"
  • Edition: 1st
  • eBook (Watermarked)
  • ISBN-10: 0-321-49854-2
  • ISBN-13: 978-0-321-49854-0

This is the eBook version of the printed book. If the print book includes a CD-ROM, this content is not included within the eBook version.

“ClickOnce demos may look simple, but those techniques only work for simple applications. Brian Noyes gives us the information we need to use ClickOnce in the real world, and he does it with a comprehensive and organized presentation. If you expect your smart client application to move very far beyond ‘Hello,World,’ you’ll want this book to help you deploy it.”
Billy Hollis, president/owner, Elysian Consulting, Microsoft Regional Director
“Once again Brian has outdone himself. As a writer, I tend to be very critical of all technical publications, including my own . . . and it is such a pleasure to read anything Brian writes because he studies his topics well, resulting in an accurate, thorough, yet concise piece of work. ClickOnce being a new technology that deals with the pains we all have with application deployment, versioning, and security, it is important to have a text that will guide you through the learning process, give you sound advice for adopting the technology, and explain why you should even care. Brian gives his readers all of that.”
Michele Leroux Bustamante, chief architect, IDesign, Microsoft Regional Director
“ClickOnce is the key to Windows and smart client deployment. Brian’s book is the key to successfully using ClickOnce. This book walks you through using ClickOnce, from the basics to advanced scenarios. It is an excellent resource.”
Rockford Lhotka, principal technology evangelist, Magenic Technologies, Microsoft Regional Director
“Brian covers ClickOnce with a view to real-world deployment issues, which isobviously based on real-world experience. In and of itself, that is enough forme to buy the book. However, it is an even better investment by virtue of thefact that ClickOnce is a core part of the .NET Framework for Windows Forms2.0 now, and Windows Presentation Foundation in the future.”
Michael Weinhardt, SDK programmer/writer, Application Model,Windows Presentation Foundation, Microsoft
“This book covers the most important ingredient needed for the success of asmart client application—deployment. The author’s unassuming writing style,combined with his in-depth coverage of the topic, makes this book an invaluableresource for all serious smart client developers.”
Vishwas Lele, principal architect, Applied Information Sciences,Microsoft Regional Director

Microsoft’s new ClickOnce auto-updating technology can radically simplify application deployment. Using it, .NET developers and architects can deliver a powerful, smart client experience along with the easy maintenance of today’s best Web applications.

Microsoft Regional Director and MVP Brian Noyes has unsurpassed experience previewing and teaching ClickOnce to professional developers. In Smart Client Deployment with ClickOnce, Noyes demonstrates exactly how to make the most of ClickOnce in your real-world enterprise applications. Noyes covers ClickOnce design, architecture, security, installation, updates, and Bootstrapping—each with a full case study and detailed sample code.

This focused, concise book explains how to

  • Design client applications for efficient deployment and auto-updating
  • Perform application deployments and automatic updates quickly and easily
  • Deliver “on-demand” client application updates
  • Deploy prerequisites with the Visual Studio 2005 Bootstrapper
  • Take full control of ClickOnce’s powerful publishing, update, and security options
  • Leverage the Visual Studio 2005 and .NET 2.0 platform features that make ClickOnce possible
  • Understand how your application will behave in the ClickOnce runtime environment

The book’s sample code is available for download at www.softinsight.com/clickoncebook.

Sample Content

Table of Contents

Figures xv

Foreword xxi

Preface xxiii

Acknowledgments xxxi

About the Author xxxiii

Chapter 1: Introduction to ClickOnce 1

What Is a Smart Client Application? 2

Why Choose Smart Clients? 6

Smart Client Deployment Challenges 7

Design Goals of ClickOnce 8

ClickOnce Features 9

Terminology 10

ClickOnce Deployment Modes 12

ClickOnce Deployment Architecture 14

ClickOnce Deployment Process Overview 16

First ClickOnce Deployment: ClickOnce Hello World 17

Software Requirements for ClickOnce 26

What to Deploy (and What Not to Deploy) with ClickOnce 28

ClickOnce Versus Other Deployment Technologies 30

Smart Client Architecture Overview 32

Where Are We? 34

Chapter 2: Initial Deployment with ClickOnce 37

Publishing an Application with Visual Studio 2005 38

ClickOnce Publishing Options 38

Visual Studio Publishing Step by Step 50

ClickOnce Application Initial Deployment Step by Step 64

Moving an Application to Production 76

Moving an Application into Production with Mage 77

Where Are We? 80

Chapter 3: Automatic Application Updates 83

Automatic Update Walkthrough 84

ClickOnce Update Options 91

Behind the Scenes on the Deployment Server 99

Behind the Scenes of an Update on the Client Machine 100

Removing or Restoring Applications on the Client 104

Restoring an Application Version from the Deployment Server 105

Republishing a Previous Version 105

Where Are We? 106

Chapter 4: On-Demand Updates 107

When Do On-Demand Updates Make Sense? 108

Introducing the ClickOnce API 109

Adding Synchronous On-Demand Updates 110

Performing Updates Asynchronously 114

Update Progress Notifications 122

Combining On-Demand Updates with Automatic Updates 123

Checking Detailed Update Information 125

Gathering Information about the Current Deployment 126

Where Are We? 128

Chapter 5: Application and Data File Management 131

Application Executable Deployment 132

Adding Application Files in Visual Studio 134

Configuring ClickOnce Application Files 135

Embedding Files in the Assembly 138

Localizing Your ClickOnce Deployment 141

Programmatic Download of Application Files 147

Deploying Extensible Plug-In Applications with ClickOnce 151

Managing Application Files with Mage 157

Managing Data Files Through Visual Studio 160

Dealing with Data Files on the Client 161

Data File Update Process 164

Deploying a Client Database with Your Application 167

Migrating SQL Compact Edition Database Files 168

Where Are We? 174

Chapter 6: ClickOnce Security 177

ClickOnce Security Overview 177

Internet Explorer Security Settings Affecting ClickOnce 188

Configuring ClickOnce Security Permissions 189

Understanding and Managing Publisher Certificates 197

Signing Application Updates 208

User Prompting 210

Trusted Applications’ User Security Policies 215

Trusted Publishers’ Permission Elevation 216

Adding Restricted Code Sections 219

Securing the Application Based on User Roles 221

Securing Access to ClickOnce Application Files on the Server 222

Where Are We? 223

Chapter 7: Prerequisite Deployment with the Bootstrapper 225

Bootstrapper Features 226

Bootstrapper and ClickOnce Sample Deployment 229

Adding Items to the Bootstrapper 234

Generating Bootstrapper Manifests 245

Where Are We? 248

Chapter 8: Advanced ClickOnce Topics 249

Using URL Query String Parameters 249

Executing Custom Install/Initialization Code 255

Debugging ClickOnce Applications 256

Deploying Unmanaged Applications with ClickOnce 261

Reg-Free COM 264

Deploying ClickOnce Applications with Firefox 266

Launching a ClickOnce Application Programmatically 267

Pushing ClickOnce Installations to the Client Machine 268

Web Server ClickOnce Configuration 272

MSBuild ClickOnce Publishing 273

Where Are We? 274

Appendix A: ClickOnce Deployment of WPF Applications 277

WPF Anatomy 101 278

ClickOnce Deployment of WPF Applications 280

Sample Web Browser Application Walkthrough 281

Where Are We? 284

Index 287


Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020