Here are some frequently asked questions about Windows Forms and their answers.
Browse by Tags
All Tags » ClickOnce (RSS)
-
|
Here are three articles that describe Registration-Free COM: Registration-Free COM Interop How To Build and Service Isolated Applications and Side-by-Side Assemblies for Windows XP by RoseMarie FitzSimons and Henry Borys Simplify App Deployment with ClickOnce...
|
-
|
I'm testing the ClickOnce, but when I publish the project my referenced library isn't copied and there isn't any reference in the deploy or manifest files. Does ClickOnce supports this? How can I add the library in the deploy manifest files...
|
-
|
For example, let's say you want to define an add-in model, or provide some base forms so my customers can extend to customize the look-and-feel of my app by just dropping in additional assemblies. How can you achieve this with "ClickOnce"...
|
-
|
Because (1) weak references don't have a hash and (2) to keep the hashing scheme simple for manifests -- all files are hashed.
|
-
|
No, the app is downloaded to the same location in the app-store and runs with exactly the same set of permissions as defined in the application manifest regardless of how it is deployed.
|
-
-
-
|
Yes, although the top level exe must be built with Whidbey.
|
-
|
The Application Files dialog does not have Add/Remove buttons. You can add files in the Solution Explorer with Add Existing File or Add Reference commands.
|
-
|
No. Note, Visual Studio supports publishing an application to a web server over FTP.
|
-
|
Yes, you can use COM components regardless of what technology was used to build them. There are several ways to do this. The best way is to use a Windows XP feature called registry free COM. This feature allows COM objects to be deployed with your “ClickOnce...
|
-
|
Technically no, but effectively yes. Almost all redists that the bootrapper will be used to install, like the .NET Framework, do require admin rights.
|
-
|
No. The bootstrapper must be explicitly run
|
-
|
Yes, the bootstrapper can download pre-requisites from any specified location.
|
-
|
Yes, the bootrapper is very extensible & can be used to install 3rd party & custom pre-requisites.
|
-
|
Essentially yes. When the bootstrapper completes installing pre-requisites, it invokes the “ClickOnce” deployment manifest which in turn installs the application.
|
-
|
The bootstrapper is a simple setup packager that can be used to install application pre-requisites (like the .NET Framework or MDAC). You specify what pre-requisites your application needs & where the pre-requisites reside. The bootstrapper will download...
|
-
|
Yes, you can override any property that appears in the project file. For example, msbuild /target:publish /property:InstallUrl=somewhereelse
|
-
|
msbuild /target:publish /property:TargetCulture=*
|
-
|
Yes, but you must do them one at a time. You can achieve this by varying the Language property on the publish page for each publish. However, it may be more practical to automate this at the command-line using MSBuild.
|
-
|
No. The Language setting on the publish page only allows choosing one language at a time. Also, the bootstrapper is only designed to include packages for a single language.
|
-
|
Yes, you can create an application manifest that defines satellites for multiple cultures. However, the deployment manifest contains publisher name and product name strings which ultimately appear on the end-user’s start menu and Add/Remove Programs dialog...
|
-
|
Yes. With Visual Studio, it’s quite easy. Simply indicate the language of the deployment in the publishing options & the correct satellite assemblies will be automatically published with your deployment.
|
-
|
Applaunch.exe is used to host applications running in the CLR Code Access Security sandbox. Applications running with full trust do not need to be hosted in a secure host & will not run in the AppLaunch.exe. Applaunch.exe is similar to IEExec.exe...
|
-
|
The main considerations are security and how self-contained your component is. Lightweight, self-contained components can generally be deployed seamlessly along with the "ClickOnce" application. However, it is important to understand that the...
|
-
|
By default, VS assumes that an application requires full trust to run & as such enters it into the application manifest. You can change this default using the Security tab in project properties. We chose this default simply because we have found that...
|
-
|
No. We looked into this, however, the user consent prompt is targeted at end-users. Translating code assess security permissions to something meaningful & helpful to the user is not easily accomplished. In addition, the trust decision the average...
|
-
|
No. The “ClickOnce” model does not support this type of on-demand prompting. The major reason is that’s hard enough to get the user to make an accurate trust decision without trying to have them do while the app is running.
|
-
|
No, you can use your own generated private test certificate. You can also use an Authenticode certificate issued by a third party.
|
-
|
There are numerous reasons we require “ClickOnce” applications to be signed. The biggest is to ensure that “ClickOnce” can not be used as an attack vector to propagate viruses to client PCs. By requiring “ClickOnce” deployments to be signed, only the...
|
-
|
Yes, it runs with exactly the same set of permissions as defined in the application manifest.
|
-
|
No, only the “ClickOnce” manifests need to be signed. The manifests have a hash of all the files they reference, so application integrity can be ensured, even if the application files are not signed. Also be careful when using signed assemblies in your...
|
-
|
Yes, if your in a managed enterprise environment, you can use an Authenticode certificate to allow applications the IT department has indicated are trustworthy to run without prompting.
|
-
|
Absolutely. You can configure the prompt on a per-zone basis. Ex. you could disable the prompt for internet apps & leave it enabled for Intranet apps.
|
-
|
The majority of the security vulnerabilities introduced by ActiveX actually had nothing to do with a prompt. Most attacks were javascript in an html page scripting a well-intentioned ActiveX control that unintentionally exposed a security hole. “ClickOnce...
|
-
|
Ideally a user would never have to make a trust decision. However, if there is no admin available to make a trust decision for the user, & the user wants to be able to use an application that needs high trust, the only one that can make the decision...
|
-
|
There are two options available to applications that need higher trust. The first is a trust prompt. An application can specify the permissions it needs (Visual Studio helps with this). If an application needs more trust than what it requests, the user...
|
-
|
No. However, you can add a link to help by specifying a supportUrl in deployment manifest. ClickOnce will create a shortcut to this URL for you. You cannot add additional entries to start menu.
|
-
|
The install UI cannot be overridden by the application. Standard install UI is an important part of making “ClickOnce” applications trustworthy. It is possible to only use the default UI for a small portion of your application & use the “ClickOnce...
|
-
|
Yes. However, all of the normal Assembly.LoadFrom() restrictions apply, and it is definitely advised against. In most cases, you would be better served to use the On-Demand capability of the System.Deployment APIs.
|
-
|
No. You can indicate which files are required & which are optional. Only required files are downloaded on initial deployment & update. An application can use the System.Deployment APIs to have the optional parts of the application downloaded when...
|
-
|
Yes, there are even multiple ways to accomplish this. Staging rollouts is useful for testing (ex. only deploying a new application updates to a beta user group) & for scalability (ex. rolling out an update to a 1000 users a day). The simplest option...
|
-
|
“ClickOnce” deployments reside on either web or file servers. The standard methods & techniques used to scale those types of servers can be used for “ClickOnce” applications. For example, large web application will often be hosted on some type of...
|
-
|
No, “ClickOnce” uses the System.NET class libraries to do it’s downloads. BITS is not supported on all of the platforms the .NET Frameworks ships on.
|
-
|
The install location of "ClickOnce" application cannot be managed by the application. This is an important part of making "ClickOnce" applications safe, reversible, and easy to administer.
|
-
|
At any given time, “ClickOnce” will have stored 2 versions of an application; the previous version & the current version. You can not configure how many versions “ClickOnce” keeps.
|
-
|
No, they are completely independent.
|
-
|
No, only “ClickOnce” can modify the contents of the “ClickOnce” store. Note each application has a data directory that resides in the store that the application can modify the contents of.
|
-
|
On XP: %userprofile%\Local Settings\Apps (e.g. C:\Documents & Settings\joe\Local Settings\Apps) On VISTA: %userprofile%\AppData\Local\Apps (e.g. C:\users\joe\AppData\Local\Apps)
|
-
|
Cache quota is 250MB. Remember, this cache size only applies to online-only apps, installed apps are not effected. There will be a way to configure this size.
|
-
|
Yes, “ClickOnce” supports HTTP 1.1 compression. Simply enable this on your web server & the files “ClickOnce” downloads will be compressed.
|
-
|
No. “ClickOnce” only downloads the files and assemblies that have changed.
|
-
|
For installed applications, users can use the Add/Remove programs UI to undo the last update. Users can only undo the last update, & only if it was an optional update. That version is marked as undesired in that user’s app store & the user will...
|
-
|
Yes, this is as simple as replacing the deployment manifest on the server you updated with the deployment manifest of the previous version you want to rollback to.
|
-
|
When launching via the network, the update will just happen. When launching via the Start Menu for installed apps, the admin can specify whether the update is required or whether the update is optional, in which case the user is prompted to choose to...
|
-
|
Use this option if you have a critical need to insure users receive updates as quickly as possible. Also, this is the default in Visual Studio because you would otherwise have to launch an application twice after publishing an update to see the expected...
|
-
|
This is the option you should typically use. It is best for fast application startup time and to optimize for offline use. “ClickOnce” will always launch the application immediately and the user doesn’t have to wait for the update check, which particularly...
|
-
|
Whenever a “ClickOnce” application is launched by clicking on a link, either URL or UNC, “ClickOnce” will check for an update & update the application. Thus when running an app from the network, the app will always be up to date… just like web applications...
|
-
|
Online applications are meant to be similar to web applications. You run the app, but when you close it, it’s gone. Installed applications are meant to be closer to traditional client applications. In terms of actual differences: Installed applications...
|
-
|
No. Addins generally require special registration and integrated activation within the hosting application. The “ClickOnce” installer does not support machine level changes such as this.
|
-
|
Yes. When a “ClickOnce” application is activated via a URL, the application can obtain the QueryString of the URL used to activate the application.
|
-
|
That is the actual “ClickOnce” engine that is handling the update checks & downloads. It is launched when a “ClickOnce” application needs updated. It shuts itself down if not used for 15 minutes.
|
-
|
You can use “ClickOnce” to deploy .NET Framework based applications built with any language, including C++.
|
-
|
You can, but wouldn’t you rather have a rich Windows Forms based UI? Also, console apps that require a command-line interface are beyond the scope of “ClickOnce” deployment in the .NET Framework 2.0. The primary reasons for this is that the install path...
|
-
|
Yes, “ClickOnce” applications that choose to be installed get an entry added in the Start Menu that can be used to launch the application when disconnected from the network. Note however, it’s still up to the application to make sure it can work offline...
|
-
|
No. “ClickOnce” only deals with deploying applications. The Windows Forms control in the browser technology is effectively unchanged.
|
-
|
For a number of security related considerations, “ClickOnce” requires that the main entry point assembly (the .exe file) be compiled with the 2.0 version of the .NET Framework. Other assemblies in the application can still be compiled with previous versions...
|
-
|
Most applications won’t have to know anything about “ClickOnce” to be deployed with “ClickOnce”. In most cases, using “ClickOnce” is as simple as creating the necessary manifest files & placing the application on a server… for which we provide tools...
|
-
|
“ClickOnce” is the successor to the V1 No-Touch deployment technology. “ClickOnce” builds upon V1 & addresses the key limitations & issues with the V1 technology. The V1 No-Touch deployment technology is still supported in V2 of the .NET Framework...
|
-
|
No. While Visual Studio makes deploying “ClickOnce” applications simple, there are several other ways to deploy “ClickOnce” applications. The .NET Framework SDK includes a tool named MAGE(Manifest Editor & Generator) that provides both a UI (mageui...
|
-
|
Yes and your app will still be auto-updateable via a network server you configured into the “ClickOnce” deployment when you created the CDs. This is a great solution for large applications or for applications that have pre-requisites installed with the...
|
-
|
If you need to do extensive install time custom actions, MSI would probably be a beter choice than ClickOnce.
|
-
|
Yes. One option is to use the VS Bootstrapper. The Bootstrapper will bundle all of your apps necessary pre-requisite’s, install them when run & then start the “ClickOnce” application install. The Bootstrapper must be run the 1st time each user uses...
|
-
-
|
No. All “ClickOnce” applications are installed per-user. Each user is totally isolated from one another and must install their own copy. If your application needs to be installed per-machine, you should use MSI.
|
-
|
No. All “ClickOnce” applications are installed per-user.
|
-
|
“ClickOnce” & MSI are separate but, complimentary application installer technologies. “ClickOnce” is targeted at web based per-user deployments. This has a lot of benefits, but also means you can’t do anything & everything at install time. If...
|
-
|
"ClickOnce" can be used to deploy Windows Forms based application based on the .NET Framework. Since "ClickOnce" applications are deployed via the web, they can't be allowed to impact the client machine to a high degree. So if...
|
-
|
You can check the useragent value in your server side code or in javascript on the html page (hint… see the Publish.htm page that VS generates). The useragent string will contain the version of the .NET Framework installed on that client.
|
-
|
Really whatever way works best for you. Ex. You can have your users install the .NET Framework before using “ClickOnce” or use management tools like SMS to push out the .NET Framework across your enterprise. To help with deployment, Visual Studio provides...
|
-
|
"ClickOnce" simply uses a MIME type for activation, which is configured by the .NET Framework 2.0 setup. This allows a "ClickOnce" app to be launched by any client that uses standard Windows url activation. This includes Internet Explorer...
|
-
|
No. "ClickOnce" does not use any special protocols to transfer files. So you can use a regular file share, IIS or any web server. If you are using a web server, there are a few additional considerations. First, you may need to configure the...
|
-
|
“ClickOnce” ships in the .NET Framework redist & supports all of the same operating systems & languages as the core .NET Framework. Specifically Windows 98 & up, except for NT4.
|
-
|
You need to have the .NET Framework 2.0 installed on the client. And you need a place to publish your app to where your end users can access, such as a web server, file share, or media such as CD/DVD.
|
-
|
"ClickOnce" is the codename for a technology that ships in the .NET Framework 2.0 that allows Windows Forms based client applications to be downloaded & run over the Network. Quite simply, "ClickOnce" makes running a client application...
|
-
|
By default "ClickOnce" deployed applications run in a security sandbox provided by CLR Code Access Security. An application has the ability to do safe operations, such as displaying UI & same site network IO, but can not do unsafe things...
|