Automatic update from clickonce application - c#

I want an C# application which can be installed on someones computer and updates it self if a newer version is available. (The conection is only for this application is within one company)
If I install the application, change something in the code, publish it again it won't check if there is an new application available.
This are my settings: Assembly Information | Publish | Publish - Update

The easiest way is to publish to an intranet website within the company. If they have multiple servers (e.g. load-balanced or standby), publish to one IIS site and copy/paste to the other servers - don't publish to each server individually as the application versions won't match. By default, IIS will stop the install setup EXE running so remove the EXE handler from the site's handlers - simply delete it.
Using this scenario, when a user runs the application it will check the website for a newer version (if they have access) and run with the old version if not, or install your newer version, if available.
You'll also find the published folders contain all previous versions - you might want to remove all previous versions before copying around the IIS sites

Are you looking for updating clickOnce automatically when any new version is available in server? If yes, setting Minmum required Version to your latest version might help. Below link may help you
Making ClickOnce Updates Mandatory?

Related

Windows Application is installing seperate instance as opposed to updating previous version after publish

I'm currently working on a .Net framework 4 Windows application that I've inherited from another developer(that's left my place) that updates from a UNC location.
Whenever I take the old version of the app and publish the new version on top of it and run the setup it installs a separate instance of the application on the machine as opposed to updating the previous version, my suspicion is that this is due to the ClickOnce manifests being signed with a . PFX key that we have lost the password to, but I can't be sure that this is definitely the reason why.
does anyone know how I'd be able to publish the app up to update the previous version without the user having to uninstall/reinstall the app?

ClickOnce update with Apache server

I have been working on a C# application which needs bug fixes and updates once i deliver it to clients. I am currently trying clickOnce method of microsoft to provide updates.
For that i need to publish my application to server with frontpage server extension (If i am not wrong!). We are using windows server 2008 enabled machine, with Apache running, i googled regarding "Publish c sharp application on Apache server" and i found this workaround.
It edits .htaccess file to allow access to VS to publish application. But it doesn't seem working. I guess the page is out dated, written in 2006.
So my questions are:
How do i publish c sharp app on apache box?
How do we publish app? Using VS or any other method?
The manifest and payload (files) just need to be generated and then copied en masse to your server, it doesn't have to be a Windows machine.
Publish to a local folder/share and then replace the entire ClickOnce folder so that the code security values remain intact. I'd suggest you always rename your current folder and then copy your latest bits into a "new" folder that is your install location.
i managed to give updates with this workaround (i dont know how feasible is this! Need inputs!)
I used database to track version numbers and (link for) latest copy of software. Then i check for updates on startup. If new update is available it downloads exe (in app itself), closes app and run the setup.
I am using install-shield to generate setup. But when i run setup in machine which is already having older version of software, it doesn't update it, even though it displays its updating.
I know visual studio also provides option to create installation, but it isn't working either!

Deployment checklist

I am starting to deploy my desktop application. It is a syntax highlighting notepad. I am considering deploying it on the web. What is like a list of things that I should do before I deploy my application?
Before you deploy an application. On the top of my head (some of what we do before each release)
Test it :-)
Test it on a clean PC. What happens it it does not have .NET installed?
Test it as a standard user (not everyone is an administrator)
"Polish". Use a consistent version on all files (important for later upgrades)
Make sure that licenses, copyright messages are correct. That the year is correct etc.
I am no expert in deploy issues, but perhaps you could deploy to a private server, and see if you can actually do the entire process.
And just as a suggestion, —I know its not directly related to the deployment per se— is it a Web 2.0 style (free/user oriented) app? Perhaps a beta version where people expected to not be perfect would help, although that's more after deployment
As this is a desktop application you could use ClickOnce deployment. This bundles your application and all its dependencies into an installer which you upload to the web. Your customers then either download the installer or run it from the web.
ClickOnce also enables automatic updates. You set the update check frequency on deployment, then just upload the new version to the web. The next time the user runs your application and it's time to check, the new version will get downloaded and installed.

Creating a updater

VS 2008 SP1
I have created a application that I have installed on the user computer. However, I want the application to be self-updating. But I am not sure if this would really update the application.
The application will download all the files from the web server, and replace the files in the directory where the program as been installed to. The user will restart the application.
I am just want to be sure, because I can't replace the installed files with the updated ones. As the application will be running. So really the application cannot delete/replace itself.
So, I was thinking that I could download into another directory, if the program is installed in this directory 'program files/application/1.0.0' then I could download the files to 'program files/application/1.0.1'.
However, when the program restarts, how can it know that it has to execute from the 1.0.1 directory?
I can't use clickonce or the updater block for this.
Many thanks for any advice,
A good option is to make an independant Updater application.
The updater will download the newest version and kill/replace the old.
I think this is the best option, because you can execute the updater within the main appication (so you can say that it´s self-updating), or directly by the user with a shortcut.
The updater can check if the application is running and ask the user to exit the application or kill it by itself.
Forgive my english...
Good luck
All of that is already done for you if you use ClickOnce deployment (Project properties, Publish).
You can wrap the application with a small loader program which will do a version check. If it's out of date, download the newer binaries and overwrite the old ones. If you want to maintain all version you might end up with:
c:\program files\mycompany\myapp\loader (the newer version will point to the latest directory)
c:\program files\mycompany\myapp\v1.0
c:\program files\mycompany\myapp\v1.1
If it's on a LAN, you might be able afford the bandwidth of just re-downloading the binaries on start up instead.
Use Windows Installer for the installation and updating. If you sign your installation packages the user can update your application without needing any administrator privileges.
I've made a website and an application that demonstrates the functionality of what you want on my website.
Wix Clickthrough might meet your needs: http://wix.sourceforge.net/clickthrough.html
I would look into ClickOnce. It can be configured multiple ways, to check for updates before the application runs, to download from the server each time it's run, or check for updates after the application has started.
I have done ClickOnce Deployment and an independent updating application, they both work well. You obviously will have more flexibility over an updating application that you create yourself, however tho, ClickOnce can also be configured to install prerequisites such as the .NET Framework, Windows Installer, etc... for your application to run.

Need suggestion for how to manage the web application

I have developed a web application also that has been deployed in many client area.
I have created a installer to install this application at client area for first time.
If i done any bug fix or add any new functionality to this site, should i create new installer for site? or How to update the existing site without creating new installer with latest bug fix?
Or, Is there any other option to update existing application?
Or, we can create a installer only install the latest updates?
Please guide me
You can start your journey using the built in web installer (part of Visual Studio).
Important thing is it will only install to a Virtual Directory of an existing web site.
If virtual directories are fine, you then need to worry about bug fixing and updates.
here is a solution...
If you are at the client or have easy access to the web sites via FTP.
You can map drives on your development / test environment to the production FTP sites, then just create a batch to copy stuff over.... best part is - if you're hosting on IIS, if you make any changes to the web.config or any assembly in \Bin you'll trigger an IIS Reset, so this means you shouldn't need to have remote access to their servers.
Make sure that batch updates all web applications in the farm.
You can also fully rely on the application installer - IF YOU'VE FULLY TESTED THAT IT DOES INFACT UPDATE YOUR FILES, LIKE IT SAYS IT SHOULD. Don't just assume it will, test that installer, and retest it... because I have had lots of problems with upgrading a web site, and you can't expect your client to uninstall, reinstall every time.
I wouldn't worry about creating a "patch installer" Web apps are relatively small anyways - and copying unchanged files won't make a huge differance.
Just be sure when you create the installer, you add project outputs to the installer file... and work with project outputs, rather than having to copy stuff in manually to the installer every time you make a change.
Hope this is at least a good starting point.

Categories