├── docs └── SampleApp1.2.zip ├── tools └── ilmerge │ └── ilmerge.exe ├── libs ├── nunit │ └── nunit.framework.dll └── dontnetzipreduced │ └── Ionic.Zip.Reduced.dll ├── src ├── app │ ├── leetreveil.AutoUpdate.SampleApp │ │ ├── app.config │ │ ├── Resources │ │ │ ├── updater.exe │ │ │ └── ltupdater.exe │ │ ├── Properties │ │ │ ├── Settings.settings │ │ │ ├── Settings.Designer.cs │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ └── Resources.resx │ │ ├── App.xaml.cs │ │ ├── App.xaml │ │ ├── MainWindow.xaml │ │ ├── sampleappupdatefeed.xml │ │ ├── UpdateWindow.xaml │ │ ├── MainWindow.xaml.cs │ │ ├── UpdateWindow.xaml.cs │ │ └── leetreveil.AutoUpdate.SampleApp.csproj │ ├── leetreveil.AutoUpdate.Updater │ │ ├── app.config │ │ ├── updateicon.ico │ │ ├── Assets │ │ │ ├── updateicon.ico │ │ │ └── updateicon.png │ │ ├── Properties │ │ │ ├── Settings.settings │ │ │ ├── Settings.Designer.cs │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ └── Resources.resx │ │ ├── App.xaml │ │ ├── ZipFileExtractor.cs │ │ ├── app.manifest │ │ ├── App.xaml.cs │ │ ├── AppStart.cs │ │ └── leetreveil.AutoUpdate.Updater.csproj │ └── leetreveil.AutoUpdate.Framework │ │ ├── app.config │ │ ├── IUpdateFeedSource.cs │ │ ├── Progress.cs │ │ ├── Update.cs │ │ ├── FileDownloader.cs │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ ├── AppcastReader.cs │ │ ├── UpdateStarter.cs │ │ ├── leetreveil.AutoUpdate.Framework.csproj │ │ └── UpdateManager.cs └── test │ └── leetreveil.AutoUpdate.Tests │ ├── Integration │ └── FileDownloaderTests.cs │ ├── Samples │ └── zunesocialtagger.xml │ ├── Properties │ └── AssemblyInfo.cs │ ├── Unit │ └── AppcastReaderTests.cs │ └── leetreveil.AutoUpdate.Tests.csproj ├── .gitignore └── leetreveil.AutoUpdate.sln /docs/SampleApp1.2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leetreveil/.NET-Auto-Update/HEAD/docs/SampleApp1.2.zip -------------------------------------------------------------------------------- /tools/ilmerge/ilmerge.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leetreveil/.NET-Auto-Update/HEAD/tools/ilmerge/ilmerge.exe -------------------------------------------------------------------------------- /libs/nunit/nunit.framework.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leetreveil/.NET-Auto-Update/HEAD/libs/nunit/nunit.framework.dll -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.SampleApp/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.Updater/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /libs/dontnetzipreduced/Ionic.Zip.Reduced.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leetreveil/.NET-Auto-Update/HEAD/libs/dontnetzipreduced/Ionic.Zip.Reduced.dll -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.Updater/updateicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leetreveil/.NET-Auto-Update/HEAD/src/app/leetreveil.AutoUpdate.Updater/updateicon.ico -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.Framework/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.Updater/Assets/updateicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leetreveil/.NET-Auto-Update/HEAD/src/app/leetreveil.AutoUpdate.Updater/Assets/updateicon.ico -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.Updater/Assets/updateicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leetreveil/.NET-Auto-Update/HEAD/src/app/leetreveil.AutoUpdate.Updater/Assets/updateicon.png -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.SampleApp/Resources/updater.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leetreveil/.NET-Auto-Update/HEAD/src/app/leetreveil.AutoUpdate.SampleApp/Resources/updater.exe -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.SampleApp/Resources/ltupdater.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leetreveil/.NET-Auto-Update/HEAD/src/app/leetreveil.AutoUpdate.SampleApp/Resources/ltupdater.exe -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.Framework/IUpdateFeedSource.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace leetreveil.AutoUpdate.Framework 4 | { 5 | public interface IUpdateFeedSource 6 | { 7 | List Read(string url); 8 | } 9 | } -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.Updater/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.SampleApp/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.SampleApp/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | 3 | namespace leetreveil.AutoUpdate.SampleApp 4 | { 5 | /// 6 | /// Interaction logic for App.xaml 7 | /// 8 | public partial class App : Application 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.dep 2 | *.aps 3 | *.vbw 4 | *.suo 5 | *.obj 6 | *.plg 7 | *.bsc 8 | *.ilk 9 | *.exp 10 | *.sbr 11 | *.opt 12 | *.pdb 13 | *.idb 14 | *.pch 15 | *.res 16 | *.user 17 | *\obj 18 | *\bin 19 | *\Debug 20 | *\Release 21 | *\Resharp* 22 | *\_ReSharp* 23 | Thumbs.db 24 | *.ncb 25 | *.suo 26 | *.cache -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.Updater/App.xaml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.Framework/Progress.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace leetreveil.AutoUpdate.Framework 6 | { 7 | public class Progress 8 | { 9 | public long Current { get; set; } 10 | public long Total { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.Framework/Update.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace leetreveil.AutoUpdate.Framework 4 | { 5 | public class Update 6 | { 7 | public string FileUrl { get; set; } 8 | public Version Version { get; set; } 9 | public string Title { get; set; } 10 | public long FileLength { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.SampleApp/App.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.SampleApp/MainWindow.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/test/leetreveil.AutoUpdate.Tests/Integration/FileDownloaderTests.cs: -------------------------------------------------------------------------------- 1 | using leetreveil.AutoUpdate.Framework; 2 | using NUnit.Framework; 3 | 4 | namespace leetreveil.AutoUpdate.Tests.Integration 5 | { 6 | [TestFixture] 7 | public class FileDownloaderTests 8 | { 9 | [Test] 10 | public void Should_be_able_to_download_a_small_file_from_the_internet() 11 | { 12 | var fileDownloader = new FileDownloader("http://www.google.co.uk/intl/en_uk/images/logo.gif"); 13 | 14 | byte[] fileData = fileDownloader.Download(); 15 | 16 | Assert.That(fileData.Length,Is.GreaterThan(0)); 17 | } 18 | 19 | } 20 | } -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.Updater/ZipFileExtractor.cs: -------------------------------------------------------------------------------- 1 | using Ionic.Zip; 2 | 3 | namespace leetreveil.AutoUpdate.Updater 4 | { 5 | public class ZipFileExtractor 6 | { 7 | private readonly byte[] _updateData; 8 | 9 | public ZipFileExtractor(byte[] updateData) 10 | { 11 | _updateData = updateData; 12 | } 13 | 14 | public void ExtractTo(string folderPath) 15 | { 16 | using (ZipFile extractedFiles = ZipFile.Read(_updateData)) 17 | { 18 | foreach (var file in extractedFiles) 19 | file.Extract(folderPath, ExtractExistingFileAction.OverwriteSilently); 20 | } 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.SampleApp/sampleappupdatefeed.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SampleApp Update Feed 5 | http://github.com/leetreveil/Zune-Social-Tagger/downloads 6 | Sample application that demonstrates the autoupdate capabilities 7 | 8 | SampleApp 9 | http://github.com/leetreveil/Zune-Social-Tagger/downloads 10 | .WMA Support and other minor bug fixes 11 | Sunday, 27 December 2009 00:35:00 GMT 12 | 1.2 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/test/leetreveil.AutoUpdate.Tests/Samples/zunesocialtagger.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Zune Social Tagger Update Feed 5 | http://github.com/leetreveil/Zune-Social-Tagger/downloads 6 | Link an album to the zune social with any album available on the zune marketplace! 7 | 8 | Zune Social Tagger 9 | http://github.com/leetreveil/Zune-Social-Tagger/downloads 10 | .WMA Support and other minor bug fixes 11 | Sunday, 27 December 2009 00:35:00 GMT 12 | 1.2 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.SampleApp/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.1 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace leetreveil.AutoUpdate.SampleApp.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.Updater/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.1 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace leetreveil.AutoUpdate.Updater.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.Updater/app.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/app/leetreveil.AutoUpdate.SampleApp/UpdateWindow.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | An update for SampleApp is available. It is reccomended that you install it as soon as possible. 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |