Every programmer and software creator solves one question which is how to distribute new versions of his own application. There are several ways how this can be performed, such as ClickOne from Microsoft that is integrated directly into Visual Studio or you can write similar tool by yourselves. I briefly summarize the advantages and disadvantages of ClickOne. The tool is very simple and debugged and fully integrated into Visual Studio. Unfortunately ClickOne simplicity is also its weakness. The system is not designed for larger projects, and that is for several reasons: nobody can control where the application is installed, update from ftp server cannot be performed, and publishing is not the fastest one.
Therefore, some of the programmers write their own updater. Of course, if they do not want to pay for some paid tool such as (wyBuild, AppLife Update Engine). This led me to the idea to write such update tools that takes the best of ClickOne (Integration into Visual Studio, Differential updates, etc.) and at the same time a programmer will have everything under his control. And that is how tool, which I called HiUpdateTools, has been created.
The main features of HiUpdateTools plug-in into Visual Studio
- Integration into Visual Studio (directly from VS you can administrate and publish new versions)
- Publishing of different types of projects WinForms, WPF, WebApplication (in preparation)
- Publishing in several ways (ftp, file)
- Each file is zipped before sending (less data is transmitted)
- The files are stored separately into the destination location so that only new files can be downloaded
- Checking the existing version on a server
- For each published version it is possible to attach information about changes
- Automatic Build in Release mode and version change in AsemblyInfo.cs
- Possibility to choose which projects will be built and which versions will be updated
The main features of HiUpdateTools.Client - client side
- Downloading from multiple sources (ftp, file, http, https)
- Client for WinForm, WPF
- Easy integration into applications
- Possibility to turn on automatic updates (without confirmation)
- Differential update (only changed files are downloaded)
- The application runs through your exe file (there is no UpdateAndRunAplication.exe)
- Checking multiple launches of your application
- Storing the encrypted password in the client configuration file
Using in Visual Studio
How to publish your application
After installing VSX pug-in into Visual Studio, the new button which is used for calling up a dialog for setting and publication of your application,
will appear in the context menu above your project.
Here you set the Application name, the Application type, the Version. You can also set the location of the server where the application should be published.
In the Client config tab you can prepare and export the XML configuration for your application.
Once everything is set up, you can get your application published for the first time by clicking Deploy button. In the destination location there should be something like this:
In ServerConfig.Xml file there is stored information about the version, files that are included in the current version. In the individual sub-folders there are stored zipped files
for each version.
Integration into your application
Add into your application HiUpdateTools.Client.Win.exe and ClientConfig.Xml references and then a static property in the Program.cs class.
public static string[] Args { get; set; }
Then fill this property in a Main
method.
[STAThread]
static void Main(string[] args)
{
Args = args;
Application.Run(new MainForm());
}
Once this is done, just capture MainForm Load
event and add the following code there.
if (!Program.Args.Contains("/noupdate"))
{
using (UpdateChecker checker = new UpdateChecker("ClientConfig.xml",
typeof(Program).Assembly.GetName().Version))
{
if (checker.Check())
{
checker.RunUpdate();
Application.Exit();
return;
}
}
}
Then, when you run the application and a new version of your application will be found on the server, your application will be terminated and
the HiUpdateTools.Client.Win.exe application and update operation will then be launched (in the case of setting the AutoUpdate) or you will wait for launching by clicking Update button.
For more information about the project, see hiupdatetools.codeplex.com.
History
1.0.0.9Fixed bug when deploy app to ftp server
1.0.0.8 Added support for Visual Studio 2010 (new VSX file) The upgrade process has been moved to block TryCatch Added Error Form to display the error and send the report an error
1.0.0.6
- Fix remove partially unzipped files
- Fix exception throw in Win client app
1.0.0.5- Generate ClientConfig.xml and adding to the project
- Set ClientConfig.xml option
"CopyToOutputDirectory"= Copy
if newer - Fix client path not ending the backslash
1.0.0.4
- Add Client assembly to VSX package
- On first use, the tool is added to the reference to the client assembly
- Fix client application
- Multi-instance application
- Run single instance of update application
1.0.0.3 First release version on 30 June, 2013
- Add support WPF client
- Move publish action into separate thread
- Change coding of config file on the UTF-8