ClickOnce is a Microsoft technology that enables the user to install and run a Windows-based smart client application by clicking a link in a web page. ClickOnce is a component of Microsoft .NET Framework 2.0 and later, and supports deploying applications made with Windows Forms or Windows Presentation Foundation. It is similar to Java Web Start for the Java Platform or Zero Install for Linux.
The core principle of ClickOnce is to ease the deployment of Windows applications. In addition, ClickOnce aims to solve three other problems with conventional deployment models: the difficulty in updating a deployed application, the impact of an application on the user's computer, and the need for administrator permissions to install applications.
ClickOnce-deployed applications are considered "low impact", in that they are installed per user, not per machine. No administrator privileges are required to install one of these applications. Each ClickOnce application is isolated from the others. This means one ClickOnce application is not able to "break" another. ClickOnce employs Code Access Security (CAS) to ensure that system functions cannot be called by a ClickOnce application from the web, ensuring the security of data and the client system in general.
The ClickOnce model supports both installed applications (akin to conventional Windows applications with start menu integration) and online applications (browser hosted applications that are not installed, only run and cached). ClickOnce applications can be deployed to a computer from a Web location, a network share, or even from a file location such as a CD.
The ClickOnce deployment technology has been integrated into the Visual Studio 2005 and later. It is also natively supported by MSBuild, Microsoft's build management technology.
A ClickOnce deployment is controlled through the use of two XML manifest files: a deployment manifest and an application manifest. The manifests are in the same XML format as the side-by-side assembly implementation. The deployment manifest (*.application file) describes the deployment model: the current version, update behavior, publisher identity along with a digital signature; this manifest is intended to be authored by administrators who handle deployment. The application manifest (*.exe.manifest file) describes the application assemblies, dependent libraries and lists permissions required by the application. This file is intended to be authored by the application developer. In order to launch a ClickOnce application, a user clicks on its deployment manifest file.