New Feature: Playlist Center! Pick a topic and let our playlists guide the way.

Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Creating a ClickOnce application

From: Visual Studio 2010 Essential Training

Video: Creating a ClickOnce application

ClickOnce is an alternative to the standard Windows installer. The name refers to the fact that the user is prompted once to install the app. The more compelling reason to use ClickOnce, however, is for its automatic update feature. Here is the idea: When you deploy your application you embed a URL in the application. Then you deploy a special manifest file to that URL. The manifest contains information about the application itself and a list of application files and prerequisites. Whenever your application is started, the ClickOnce engine checks that URL to see if the manifest has changed.

Creating a ClickOnce application

ClickOnce is an alternative to the standard Windows installer. The name refers to the fact that the user is prompted once to install the app. The more compelling reason to use ClickOnce, however, is for its automatic update feature. Here is the idea: When you deploy your application you embed a URL in the application. Then you deploy a special manifest file to that URL. The manifest contains information about the application itself and a list of application files and prerequisites. Whenever your application is started, the ClickOnce engine checks that URL to see if the manifest has changed.

If so, the application is updated based on the contents of the manifest file. I've used ClickOnce successfully on several projects, and I have to say that it's easy to use and works as advertised. I'm opening a solution called ClickOnceDeploy, which contains our PixelSmithDesktop WPF application. To do a ClickOnce deployment, you just need to open this Properties node and go to the Publish section. I would like to talk about security keys first. You have to sign your manifest. It's easy to sign by going to the Signing tab and using this Sign the ClickOnce manifests.

I have already created a temporary test certificate key. If you want to create your own, just click on this Create Test Certificate key and it will replace the existing one. Next, I'll go to Publish, and we'll talk about these two locations. There is the Publishing Folder Location and the Installation Folder location. The Publishing Folder Location is where Visual Studio copies the files during a publish operation. The Installation Folder URL is where the user goes to install the application. These may be the same location, and they might be different.

Let me tell you a reason why they might be different. Let's say we're deploying off of a web server. I don't have permissions to upload files to that server. I will have to give them to my IT administrator. So I'll publish to a local location. Then when I'm done, I'll zip those up and send them to my administrator and say, "These need to be installed on our web server." I do need to embed the correct HTTP location here though, because that's where your application is going to go look for the manifest. For today, we're going to use the same location to make our lives easier.

I'm going to go out to our Desktop, and I'm going to create a new folder on the desktop called Deploy. Then I'm going to open that Deploy folder, and then I'll click up here and copy the location. Then I return back to Visual Studio, and I'm going to paste that location in this Publishing Location. Now, I'm going to have to change this to localhost, and then I'll take and copy this and paste it down here in the Installation Folder location. Next, I'm ready to publish. I will walk you through the wizard, so you can see how that works.

I'll click on the Publish Wizard. This just asks where the publishing folder is. I'll go ahead and click the Next button. Here, I can specify where the user will install the application: from a web site, or from a local file, or from a CD-ROM. Naturally, we're choosing this local location. Next, I choose whether I want to have the application run offline or not. In other words, if the web site is not available, will this application is still run? I'll click Next and then Finish. It opens this folder, which is my Desktop\Deploy location, and let's look at what we have here. This is the file that the user will run to install the application.

This is the manifest file. It contains XML data, pointing out what the current version of the application is. This folder contains all the physical files that need to be installed on the user's machine. So if I open up the Application Files folder, here is our first version of our application, and inside there are the files that need to be copied to the user's install folder. I'm going to go back here and double- click on setup.exe, step through the prompts. The reason I get this is because I'm not using a real security certificate; I'm using a test certificate. Click on Install, and now the application is running.

We'll check out and make sure it's working. Looks good, and then I'll close the app. Now the next day your user comes into work, they go down here, and they choose to run PixelSmithDesktop. I don't know if you saw that, but very briefly there was a Checking for Updates dialog that popped up. It didn't find any new updates, so it just went ahead and ran the application. I'm going to make some changes to the application over inside Visual Studio. So I'm going to go to my UI, and I'm going to change some text on this ToolBox.

I'm going to come over to the Text property and put an extra x in there and then compile my application. So now I have a new version. Let's publish that new version. We'll go back to the Publish location. Rather than click on the Publish Wizard, I can just click on the Publish Now. Let's go look in this folder. You see how there is two versions here now? And this manifest file is now pointing to the second version. So, the user now goes to their shortcut on their desktop, and they see this dialog, "A new version of PixelSmithDesktop is available.

Do you want to download it now?" Of course we do. We'll click on OK, and now there is our new improved version of the application. There is more to explore in ClickOnce. For example, it exposes a programming model so that you can write code to check for updates. I'm a firm believer in the power of this tool, and I love how ClickOnce streamlines the update processes for my application.

Show transcript

This video is part of

Image for Visual Studio 2010 Essential Training
Visual Studio 2010 Essential Training

86 video lessons · 29803 viewers

Walt Ritscher
Author

 
Expand all | Collapse all
  1. 2m 3s
    1. Welcome
      1m 2s
    2. Using the exercise files
      1m 1s
  2. 7m 19s
    1. Understanding the Visual Studio versions
      3m 51s
    2. Setting up your developer computer
      3m 28s
  3. 58m 2s
    1. Creating a Visual Studio project
      4m 58s
    2. Working with Solution Explorer
      6m 32s
    3. Working with big projects
      3m 53s
    4. Taking a tour of the Integrated Developer Environment (IDE)
      8m 36s
    5. Introducing drag-and-drop UI design
      7m 38s
    6. Working with the Properties window
      6m 44s
    7. Looking at Server Explorer
      7m 4s
    8. Exploring the new Help engine
      6m 41s
    9. Setting options for the IDE
      5m 56s
  4. 39m 25s
    1. Creating a simple WPF application
      1m 32s
    2. Building the UI with the editors
      9m 14s
    3. Working with the application code
      3m 37s
    4. Communicating with the web site
      7m 15s
    5. Connecting your data
      8m 4s
    6. Binding to an RSS feed
      5m 4s
    7. Packaging and deploying the application
      4m 39s
  5. 39m 46s
    1. What languages are supported in Visual Studio 2010?
      1m 17s
    2. Exploring basic settings for the Code Editor
      5m 35s
    3. Writing a C# program
      6m 48s
    4. Writing a VB program
      6m 29s
    5. Working with C++
      6m 38s
    6. Working with F Sharp
      6m 9s
    7. Font and color options
      6m 50s
  6. 1h 5m
    1. Formatting your code
      6m 43s
    2. Navigating your code
      7m 44s
    3. Using the Task List
      2m 26s
    4. Commenting your code
      2m 45s
    5. Documenting your code
      8m 26s
    6. Using IntelliSense effectively
      7m 0s
    7. Working with code snippets
      6m 25s
    8. Refactoring your code
      5m 15s
    9. Understanding code generation
      2m 10s
    10. Generating code with T4
      6m 29s
    11. Using the Class View, Class Designer, and Class Diagram tools
      5m 51s
    12. Refactoring VB with CodeRush Xpress
      4m 33s
  7. 1h 11m
    1. Working with project and item templates
      8m 38s
    2. Creating a console application
      7m 5s
    3. Creating a class library
      6m 26s
    4. Creating a web site with ASP.NET
      7m 37s
    5. Creating a rich internet application with Silverlight
      6m 57s
    6. Creating a classic Windows application with Windows Forms
      10m 31s
    7. Creating a dramatic Windows application with Windows Presentation Foundation (WPF)
      4m 41s
    8. Creating a WCF service
      9m 1s
    9. Using an existing WCF service
      6m 38s
    10. Navigation UI designs with the Document Outline view
      3m 41s
  8. 33m 18s
    1. Creating a data project with SQL Project
      6m 24s
    2. Clarifying the confusion on .NET Data
      3m 31s
    3. Using ADO.NET in your application
      6m 50s
    4. Creating typed datasets
      7m 55s
    5. Using the data binding tools
      8m 38s
  9. 30m 13s
    1. Debugging code
      9m 32s
    2. Working with the Watch and other debug windows
      7m 46s
    3. Other debugging techniques
      6m 50s
    4. IntelliTrace historical debugging in Visual Studio Ultimate
      6m 5s
  10. 17m 56s
    1. Understanding Visual Studio editions and test tools
      2m 22s
    2. Verifying your code with unit tests
      8m 58s
    3. Running performance and load tests
      6m 36s
  11. 34m 5s
    1. Building your application
      4m 19s
    2. Customizing the build process with MSBuild
      6m 36s
    3. Setting assembly information
      2m 12s
    4. Deploying a basic Windows application
      2m 19s
    5. Creating an installer with Visual Studio
      7m 39s
    6. Creating a ClickOnce application
      5m 13s
    7. Setting up IIS for deploy
      2m 9s
    8. Deploying a Silverlight or ASP.NET application
      3m 38s
  12. 14m 0s
    1. Understanding source control
      2m 9s
    2. Setting up Team Foundation Server source control
      3m 5s
    3. Using Team Foundation Server source control
      8m 46s
  13. 17m 31s
    1. Understanding the .NET Office integration
      4m 16s
    2. Making a Word 2010 application
      7m 54s
    3. Making an Excel 2010 add-in
      5m 21s
  14. 31m 34s
    1. Understanding the extensibility model in Visual Studio
      2m 17s
    2. Adding external tools to the Tools menu
      4m 42s
    3. Creating macros
      7m 16s
    4. Using the Extension Manager
      5m 1s
    5. Creating an MEF add-in
      7m 9s
    6. Deploying and installing an add-in with VSIX
      5m 9s
  15. 25m 34s
    1. Working with configuration files
      5m 37s
    2. Using the Settings Editor
      7m 30s
    3. Using the Resources Editor
      6m 59s
    4. Localizing your resources
      5m 28s
  16. 1m 17s
    1. Goodbye
      1m 17s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold

Are you sure you want to delete this note?

No

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.