Find file History
Pull request Compare This branch is 344 commits ahead, 1 commit behind leetreveil:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
FeedBuilder.csproj Move debug build output to FeedBuilder/bin Sep 25, 2016
HelpfulTextBox.cs #60 Updated all files to follow coding standards Feb 3, 2016
HelpfulTextbox.Designer.cs Named Pipe timeout and minor updates. Sep 23, 2012
frmMain.cs Move call to UpdateTitle back for non-existing files but remove a red… Oct 4, 2016


This the readme file for the NAppUpdate FeedBuilder.

=== NAppUpdate CONCEPTS and USAGE =============================================

The NAppUpdater (NAU) provides a method for describing actions to perform, 
related to updating your application. It uses a special XML file (NauXML) which
contains the description of the updates, what logic to use to determine if
updates are needed, and what actions are necessary to perform the updates.

Here's how to include the NAU in your project.
1. Add references to NAppUpdate.Framework.dll.
2. Add a class to your project (or add logic to an existing class) to check
   for an update. The NAU project contains a Windows Forms example and a WPF
   example for how you can do this.
3. You'll want to modify the "source" variable so it points to your particular 
   updates repository.
4. Add a post-build event command line to your project, so it calls the 
   FeedBuilder (refer to command line options and examples below). The first 
   time you build the project, select the appropriate FeedBuilder options and 
   save the configuration.
5. Create an installer that includes whatever files your project needs for an
   initial install. At minimum (we could call this a web installer), you need 
   the NAppUpdate.Framework.dll and an executable that checks your repository 
   for updates.

Here's how to release an update.
1. Build your project
2. Run the FeedBuilder and perform the Build so that it outputs the update 
   items to a folder. If you've added the FeedBuilder as a post-build event,
   this should happen automatically.
3. Open the folder where the feed outputs were generated.
4. Upload the feed outputs to your updates repository.

Here's how NAppUpdate works in general.
1. Your application defines a source and gets an instance of the UpdateManager.
   For example, if you use the SimpleWebSource, you simply provide it with the 
   URL to the remote folder of your repository.
2. When your application determines it is time to check for an update, it 
   calls one of the NAU CheckForUpdates methods.
3. NAU downloads the NauXML file and compares it to the running application
   to determine whether an update is available.
4. Your application uses the NAU response to initiate the preparation of the 
   update (e.g. downloading files to a temporary folder) using one of NAU's
   PrepareUpdates methods.
5. NAU extracts an updater executable and places in a temporary folder.
6. When it is ready, your application calls NAU's ApplyUpdates method. 
   This will...
   a) terminate your application (if a cold update is needed), 
   b) perform the update actions (e.g. update files), and then 
   c) restart your application (if it was terminated).

=== COMMAND LINE OPTIONS ======================================================

The FeedBuilder recognizes the following command line options. 
The order of the options does not matter.
All options are not case sensitive.

(path and filename to a FeedBuilder config file)
        Open the file for processing. If the config file doesn't exist, the GUI 
		will be displayed so you can configure the feed and save the config 
		file for subsequent command line invocation.

        Build the feed. This is the same as clicking on the Build button on the
        GUI, except the outputs folder will only be shown if the OpenOutputs
		option is present.

       Show the GUI

       After building, open the outputs folder. The outputs folder is always
	   displayed if the GUI is shown.

=== EXAMPLES ==================================================================

Here's a typical scenario of a Visual Studio project, where the 
FeedBuilder.config file is placed in the same folder as the .sln file. This may
be appropriate for a debug project, where you might not want to upload files 
every time the project is built (so the output folder is not opened after the
build). You would place this command in your Visual Studio project's Post Build 
event command line:

   "C:\PathTo\FeedBuilder.exe" "$(SolutionDir)FeedBuilder_Debug.config" -Build

Here's a typical scenario for the same project as above, except applied to the 
Release build, where it might make sense to open the outputs folder so you can 
upload them after they are processed:

   "C:\PathTo\FeedBuilder.exe" "$(SolutionDir)FeedBuilder_Release.config" -Build -OpenOutputs