| title | Create custom installer for ClickOnce application | |||||
|---|---|---|---|---|---|---|
| description | Explore the process for a custom installer to silently install and update a ClickOnce application based on an .exe file. | |||||
| ms.date | 11/04/2016 | |||||
| ms.topic | how-to | |||||
| dev_langs |
|
|||||
| helpviewer_keywords |
|
|||||
| author | mikejo5000 | |||||
| ms.author | mikejo | |||||
| ms.subservice | deployment |
Any ClickOnce application based on an .exe file can be silently installed and updated by a custom installer. A custom installer can implement custom user experience during installation, including custom dialog boxes for security and maintenance operations. To perform installation operations, the custom installer uses the xref:System.Deployment.Application.InPlaceHostingManager class. This walkthrough demonstrates how to create a custom installer that silently installs a ClickOnce application.
[!INCLUDEndptecclick]
-
In your ClickOnce application, add references to System.Deployment and System.Windows.Forms.
-
Add a new class to your application and specify any name. This walkthrough uses the name
MyInstaller. -
Add the following
Importsorusingdirectives to the top of your new class.using System.Deployment.Application; using System.Windows.Forms;
Imports System.Deployment.Application Imports System.Windows.Forms
-
Add the following methods to your class.
These methods call xref:System.Deployment.Application.InPlaceHostingManager methods to download the deployment manifest, assert appropriate permissions, ask the user for permission to install, and then download and install the application into the ClickOnce cache. A custom installer can specify that a ClickOnce application is pre-trusted, or can defer the trust decision to the xref:System.Deployment.Application.InPlaceHostingManager.AssertApplicationRequirements%2A method call. This code pre-trusts the application.
[!NOTE] Permissions assigned by pre-trusting cannot exceed the permissions of the custom installer code.
:::code language="csharp" source="../snippets/csharp/VS_Snippets_Winforms/System.Deployment.Application.InPlaceHostingManager/CS/Form1.cs" id="Snippet1":::
-
To attempt installation from your code, call the
InstallApplicationmethod. For example, if you named your classMyInstaller, you might callInstallApplicationin the following way.MyInstaller installer = new MyInstaller(); installer.InstallApplication(@"\\myServer\myShare\myApp.application"); MessageBox.Show("Installer object created.");
Dim installer As New MyInstaller() installer.InstallApplication("\\myServer\myShare\myApp.application") MessageBox.Show("Installer object created.")
A ClickOnce application can also add custom update logic, including a custom user interface to show during the update process. For more information, see xref:System.Deployment.Application.UpdateCheckInfo. A ClickOnce application can also suppress the standard Start menu entry, shortcut, and Add or Remove Programs entry by using a <customUX> element. For more information, see <entryPoint> element and xref:System.Deployment.Application.DownloadApplicationCompletedEventArgs.ShortcutAppId%2A.