Sharp Updater

SharpUpdater is a bootstrap loader for adding automatic update capability to your windows desktop applicatons based on .NET framework.It is also a solution which provides a sample server program and a set of APIs for developers to extend from version 3.5+.For .net 2.0 you can use V2.*.

1.How it works
 
    Updater.exe download the latest release list config file from server,compare with the local release list, if local version out-of-date, the differential files downloaded from the server, and coverage to the local, and then start the main program.
2.The Service Side Configuration
 
To IIS7.5
    1, Create a new IIS site.
    2, Disable * dll handles mapping to allow dll file to download.         
    3, On this site to create a desktop program subdirectory, such as /demo/.
 
3.The Client Configuration
 
      1,Include or reference SharpUpdater.Util.dll / Updater.exe. If you need a zip formated update package , also need to include ICSharpcode.SharpZipLib.dll / CnSharp.ZipUtil.dll
 
There was nuget package provided 
 
    
    2,Add interoperability code to main program entrance for updater 
      private static void Main(string[] args)
    {
            if (args.Length == 0)
            {
                Process.Start("updater.exe");
                Application.Exit();
                return;
            }
            if (!args[0].StartsWith("ok"))
            {
                Application.Exit();
                return;
            }
 
 
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
   
4.Package and Release
 
    1,SharpPack
         SharpPack is a Visual Studio extension used to generate WinForm program and release list
Right-click the WinForm project, select Package and Publish command
Edit version numbers of project
        
Choose release files and fill the fields of Manifest
    
    2,Upload  manifest.xml and  folder '1.0.0.0' generated under bin/ directory to the server ~/Demo/ directory
 
 
5.Extensibility

   i) Extension for Updater 
 
    1,Implement CnSharp.Windows.Updater.Util.IUpdatesChecker
      In the SharpUpdater source code,we did not implement this interface, see CnSharp.Windows.Updater/Common.cs/Ln.39。
     Therefore, by default only show the update log of the current version; assume that the user upgrade from V1.0 to V1.4, you can only see V1.4 update log, can not see V1.1 ~ V1.3 . Developers can implement it own.
 
    2,Since SharpUpdater source code based on Ms-PL lisence,you can modify it freely.
 
    ii) Extension for SharpPack
 
     1,interface:IBuildCommand
          This interface contracts a group of  methods.You can custom your own UI,steps  or actions.
 
     2,interface:IVersionControl
         This interface helps you  check out the AssemblyInfo.cs to modify  version number.Default implement is for TFS,you can implement it for other source control tools,such as SVN.

        www.cnsharp.com

Last edited Oct 22 at 2:20 AM by CnSharp, version 12