ClickOnce update with Apache server - c#

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!

Related

C# Winforms autoupdate check

I am trying to make autoupdate check and upgrade procedure (now from location on shared drive, in future maybe from server).
I have created "Visual Studio Installer" project that creates setup and it is possible to install the app. Also I have created another binary that searches for updates - if there are updates and user wants it, it runs the setup and app ends - if no updates, it runs main program. I have selected 2 binaries system in order to have possibility to run app without updates checking.
But If I confirm the update I am getting "Another version of this product is already installed. error code..." dialog.
I am not sure if my approach is right, probably not. But I found only commerce solutions and ClickOnce which seems to be for updating from network.
Thank you in advices for your answers.
It seems you are looking for something that allow you to have folder in your disk or a shared drive that can be used as local server to help you make updates without using internet connection , I introduce you to Squirrel.Windows its an open source installation and update framework for Windows desktop apps.
Here is link for Getting Started With Squirrel.
And here is a Youtube Video by Tim Corey where he explain Squirrel practically with demo windows forms project.
Happy Codding...

Automatic update from clickonce application

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?

Automatically update a C# Windows Forms application

I want my application to automatically check for updates and update the application if needed. I installed InstallShield Limited edition, but when I went to the update section I found out that I need to install FlexNet which requires me to purchase it.
I found out that Windows has stopped supporting Windows Installer which is why in Visual Studio 2013 it's not listed in the setup and deployment section.
I also read about ClickOnce, but there is a small issue when I tried to deploy my application to the FTP server. It asked for the username and password, but it added a warning that these values will be in plain text! So, what should I do? Is there another third-party way of creating an installer and setting up automatic updates?
I've used ClickOnce with dozens of applications and have never seen the username/password prompt. My process is:
Declare the application is downloaded from "http://www.yourSite.com/yourApp/"
Publish to folder "yourApp" in whatever location you want
Drag and drop that whole folder into your WWW space on your server
Email your users the link "http://www.yourSite.com/yourApp/yourApp.application"
For updates, just repeat this same process (except emailing users), and everything else takes care of itself. Be sure check the box in your application settings that tells it to check for updates of course.
The prompt about the username and password only applies during the deployment. So I wouldn't deploy the app using FTP in a Starbucks using their Wi-Fi, but it should be fine at work or on your private network at home.
Consider looking:
How to: Manage Updates for a ClickOnce Application
How to: Check for Application Updates Programmatically Using the ClickOnce Deployment API
You can distribute your application using a webserver, even your application can run from a link in a web page.
And also you can check for update using code.

Replacing the .net application in server which are being open in client PC

We have some Vb.Net applications internally used in our company. Those will be hosted in our windows server 2012 and will be accessed from all client machines(windows xp,7 and 8) in network. When we build newer versions of the application, we will replace the existing exe files in server by renaming old exe files as Application1_Old.exe and will put new file in the name of Application1.exe. Normally It allows to rename the file even when application is open in client PC.And that user will get new features once he closes the application and reopens it. So we where replacing the .exe when they are open in client.
So Windows server will allow to rename the vb.net exe/dll files which are open from network or locally.This feature is found in windows server only.
Problem case:
But sometimes this will not allow to rename for some files. But if we try after sometimes for the same file, it will allow. This error is not file specific and not regular. When this error comes we have to close the existing connections of the application in OpenFiles and then do renaming.
I don't know when this problem will come and when won't come. Previously by my observation I found that if any exe file is open in any windows7 PC, then it won't allow to rename in server. So we were closing the open connection only from that PC. It was allowing to rename afterwards.
Later on we have upgraded some PCs to windows 8. After upgrading the number of this problem cases is increased. I feel that it is related to windows7 or 8 only,but not sure . Some features may be by default enabled in win XP but may be disabled in Windows 7 and above.
I have also got information like "When a client has the file handle locked, we can't rename the file" . But we are able to do it from past few years as i said before. So how is this possible?
Does anybody facing the same issue? How can I troubleshoot this issue? What may be the cause for now not able to replace the file?
Well I am not surprised that you can rename a executable when it is running on a client machine. This is not the recommended way to deploy your application.
You should have a look into clickonce deployment. This allows you to deploy to a web server or a file share. Clients then install the application locally, so you can perform updates regardless of whether someone if using your application or not.
This previously asked question is similar to yours: How can we overwrite EXE files while users are running them?
As a last ditch attempt you may also want to have a look at InUse.exe "provides individuals and administrators with "on-the-fly" capability to replace files that are currently in use by the operating system"

Deploying the Windows Form Application by Click Once

I knew nothing about ClickOnce and I tried to find more. I have an Windows Forms Application and I want to use a web server (http) to deploy it by click once for testing by customer.
I have Apache in my system to use my system as a web server (which is in XAMPP software)
I have several questions:
When I want to publish the application, must I copy it in specific directory?
Is there any free web server that I can use?
If there is, must I copy my application on web server? How?
BTW, If you know a detailed instruction about that ,may you introduced?
PS: I read this reference completely.
You specify the location of your ClickOnce Application in Properties -> Publish. The Publishing Folder is the Location, where Visual Studio tries to save the published Location. If you are using a WebServer where you have to log in, Choose here a local path on your computer. The Installation Folder URL is the URL, where the ClickOnce Application is looking for Updates. This is the Url on the Server where you have to copy all the Files from the Publish Folder to, if its not the same.
I dont think that there is a free web server you can use. There are a few Services which are quit cheap but as you mentioned, you can use your own Server with XAMPP. I never used XAMPP so i cant help you their
Yes you have to copy your application to the Web Server. Im using WinSCP for that. Be sure to copy the files to the location you have set in the properties. If you are using XAMPP, you may copy the files locally to the XAMPP folder
There are no specific instructions i can mention. You will find everything in the Web. There are some useful articels at CodeProject

Categories