Click once not updating
Manifest’s Shell\Open\Command value, you’ll find that it calls for running the Sh Open Verb Application function inside dfshim.dll, passing along the .application file’s path or URL in a parameter (%1): And therein lies the source of the behavioral difference. Manifest file from Edge Spartan, it passes the source URL for the .application to the handler.
When you download the file in Firefox or Chrome, it passes the local file path of the downloaded .application file.
As a developer, you may consider something like 'grabbing the source code for the previous version, build it, and deploy'; which can be time time consuming. ADD REMOVE PROGRAMS - Scroll down the list of applications until you find your application name, in my case it is called RSA - Click Change/Remove - You will then have two options a) Restore the application to its previous state b) Remove the application from this computer Select a) and the previous build will become the current version.
The caveat is the user must use Start - to load the previous version.
With only the local file path, the Sh Open Verb Application function doesn’t know how to resolve the relative references in the Application Manifest’s XML and the function bails out with the Cannot Start Application error message.
Setting FTA_Always Use Direct Invoke also has the side-effect of removing the “Save” button from Edge’s download manager: …helping prevent the user from accidentally downloading an .application file that won’t work if opened outside of the browser from the Downloads folder (since the file’s original URL isn’t readily available to Windows Explorer).
Squirrel works and does exactly what we require, our windows forms application’s can have a ‘check for updates’ option, which updates to the latest release, close the old application down after its updated, re-open from the original desktop or start menu shortcut and your done.
As a standard, we use Click Once to deploy all of our applications.
This option works for a single client and is a temporary solution, what if a permanant rolback is required?
The extension comes in two pieces– a traditional Java Script extension and a trivial “native” executable (written in C#) that simply invokes the Sh Open Verb Application call with the URL.
The Java Script extension launches and communicates with the native executable running outside of the Chrome sandbox using Native Messaging.
Chrome and Firefox can successfully install and launch Click Once’s .application files So, what gives?
Why does this scenario magically work in Edge Spartan but not Firefox or Chrome?
See edge://flags/#edge-click-once Do you use Click Once to deploy your applications?