Click here to Skip to main content
15,443,281 members
Articles / Programming Languages / Visual Basic
Article
Posted 25 Sep 2008

Stats

70.9K views
900 downloads
28 bookmarked

Deploying CAB Files Using ClickOnce Deployment

Rate me:
Please Sign up or sign in to vote.
4.33/5 (2 votes)
25 Sep 2008GPL33 min read
This article is a step by step explanation of how to modify a ClickOnce Deployment package to include CAB files

Introduction

The purpose of this article is to demonstrate how to modify a ClickOnce Deployment Application Manifest to include CAB and other resource files normally not permitted through ClickOnce.

Background

Suppose you have a Visual Studio 2005 or 2008 project that contains a CAB file and you wish to include that CAB file as part of your ClickOnce Deployment package. By default, there is no way in Visual Studio 2005 to do this. Thankfully, there is an Open Source Utility called “Manifest Manager Utility” available which can be used to do this.

Details

Step 1 – Manifest Manager: Download the “Manifest Manager Utility” source code from the following URL:

Extract the zip file and open the solution file “ManifestManagerUtility.sln” in Visual Studio and compile the code to generate the “ManifestManagerUtility.exe” file. Alternatively, you can use the Windows Installer I have included in this tutorial to install a compiled version of this utility on your machine.

Step 2 – Sample Project: The sample project I have included in this tutorial consists of the following subprojects:

Image 1

  • ClassLibrary1: is a sample Class Library DLL, which we wish to distribute with our ClickOnce Deployment.
  • Sample Project 1: is the main subproject of the solution, which is set as the startup project for our solution.
  • Cab1: is a CAB Project, which takes the primary output from ClassLibrary1 and adds the DLL to the output of the solution.

Step 3 - Right-click on the main subproject name (in this case “Sample Project 1”) in the Solution Explorer window in Visual Studio and Choose “Properties”.

002_Initial_Publishing_ClickOnce_Deployment_Package.jpg

Step 4 – Click on the “Publish” Tab and enter the “Publish Location” and “Install URL” of your application. This can either be a web location, a shared network location, or a location on your local machine.

Step 5 – Click on the “Publish Now” button to publish your application. Here is what you will have in your directory:

003_Initial_Published_Files.jpg

Step 6 – Run the Manifest Management Utility and click on the “Open” folder icon:

004_Open_Application_File.jpg

Step 7 – Select the .application file of your ClickOnce Installer and click on the “Open” button:

005_Select_Application_File_to_modify.jpg

Step 8 – Click on the “Add Files” button in the toolbar.

006_Click_on_Add_Files_Button.jpg

Step 9 – Navigate to the project directory and select the CAB file you wish to include with your ClickOnce Deployment to add. You will be asked about the destination of the CAB file. Select the subfolder “Sample Project 1_1_0_0_0”, inside the same folder you opened the “.application” file from. Here is what your screen should look like:

007_Manifest_Manager_with_CAB_File.jpg

Step 10 – Click the “Save” button to save your changes. You will be asked to provide the Key (Digital ID / Authenticode) for the application. By default, when you first publish your application, a Key is created for you and added to the source code folder of your project. Click the “Browse” button and navigate and select this Key file. Here is what your screen should look like:

008_Selecting_the_Key_File.jpg

Step 11 – If you have a password associated with your Key file, enter it in the password Textbox. Otherwise leave the password field empty and click on “Save and Sign” to complete your modification.

Step 12 ­­– Navigate to your “Sample Project 1_1_0_0_0” folder, you should see an additional file called “ClassLibrary1Cab.CAB.deploy” added to your list of deployment files. This file is basically your original CAB file with a “.deploy” added to the end of it to allow ClickOnce to deploy it along with your other files to the user’s machine.

That’s it! All you have to do now is to upload the files to your web server, shared network folder or deployment location and run the ClickOnce installer to watch it do its magic.

Points of Interest

Feel free to post questions or comments regarding the above tutorial below in the comments section, and don’t forget to rate the article!

History

  • 09/26/2008 - Initial article creation

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)


Written By
Software Developer (Senior) DigiOz Multimedia
United States United States
Pete Soheil is the Creator and Owner of DigiOz Multimedia, a Chicago-IL based company that specializes in the creation of Windows, Web and Mobile Application Development in a variety of Programming Languages, including C#, VB.NET, ASP.NET, ASP, VC++, GCC, PHP and Perl.

Comments and Discussions

 
QuestionLittle bug Pin
konytskyy18-Jan-12 3:06
Memberkonytskyy18-Jan-12 3:06 
GeneralDoubt Pin
carlosae23-Mar-09 4:33
Membercarlosae23-Mar-09 4:33 
GeneralRe: Doubt Pin
DigiOz Multimedia23-Mar-09 16:29
MemberDigiOz Multimedia23-Mar-09 16:29 
GeneralRe: Doubt Pin
carlosae24-Mar-09 2:44
Membercarlosae24-Mar-09 2:44 
GeneralRe: Doubt Pin
DigiOz Multimedia25-Mar-09 4:17
MemberDigiOz Multimedia25-Mar-09 4:17 
QuestionWhy? Pin
Meh Man4-Feb-09 21:25
MemberMeh Man4-Feb-09 21:25 
AnswerRe: Why? Pin
DigiOz Multimedia5-Feb-09 1:58
MemberDigiOz Multimedia5-Feb-09 1:58 
GeneralRe: Why? Pin
Meh Man5-Feb-09 5:20
MemberMeh Man5-Feb-09 5:20 
GeneralRe: Why? Pin
DigiOz Multimedia5-Feb-09 5:32
MemberDigiOz Multimedia5-Feb-09 5:32 
GeneralRe: Why? Pin
Meh Man6-Feb-09 21:13
MemberMeh Man6-Feb-09 21:13 
GeneralRe: Why? Pin
DigiOz Multimedia7-Feb-09 3:26
MemberDigiOz Multimedia7-Feb-09 3:26 
GeneralRe: Why? Pin
Meh Man7-Feb-09 4:40
MemberMeh Man7-Feb-09 4:40 
GeneralRe: Why? Pin
DigiOz Multimedia7-Feb-09 9:10
MemberDigiOz Multimedia7-Feb-09 9:10 
GeneralI don't get a pfx file generated Pin
David Fenstemaker29-Sep-08 10:55
MemberDavid Fenstemaker29-Sep-08 10:55 
GeneralRe: I don't get a pfx file generated Pin
DigiOz Multimedia29-Sep-08 11:03
MemberDigiOz Multimedia29-Sep-08 11:03 
GeneralThanks Pin
richieacc28-Sep-08 22:22
Memberrichieacc28-Sep-08 22:22 
GeneralRe: Thanks Pin
DigiOz Multimedia29-Sep-08 4:17
MemberDigiOz Multimedia29-Sep-08 4:17 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.