-
-
Notifications
You must be signed in to change notification settings - Fork 51
About Projects
A project is basically a directory that is structured like this:
Project directory/
├── Versions/
│ ├── 1.0/
│ │ └── ...Version 1.0 of your app...
│ ├── 1.1/
│ │ └── ...Version 1.1 of your app...
│ └── ...etc...
├── Output/
│ └── ...Its contents are auto-generated...
├── SelfPatcher/
│ └── ...Self patcher files...
├── Other/
│ ├── DownloadLinks.txt
| | private.key (optional)
│ └── public.key (optional)
└── Settings.xml
Versions
: contents of this directory will be used to generate the patch files. Each new version of your app should be placed in a new subdirectory here. The subdirectory's name should be the same as the version's number. For example, if you have created version 1.0 of your app, you should put its files inside Versions\1.0\
. You don't need to delete a previous version after creating its patch
Output
: generated patch files will be stored in this directory
SelfPatcher
: (IMPORTANT) if this is a self patching app, you need to put your self patcher inside this directory. Then, it will be copied to each new version of your app automatically
Other
: holds other utility files/folders. For example, it holds a DownloadLinks.txt file that can be used to quickly update the download links in VersionInfo.info
Settings.xml
: an XML file that is used to configure the patch creation process. It has the following properties:
- CreateRepairPatch: sets whether or not a repair patch should be generated while creating a patch
- CreateInstallerPatch: sets whether or not an installer patch should be generated while creating a patch
- CreateIncrementalPatch: sets whether or not an incremental patch should be generated while creating a patch. If there are only one versions in the Versions directory, then no incremental patches will be generated regardless of this setting
-
CreateIncrementalPatchesFromEachPreviousVersionToNewVersion: assume there are 3 versions in the Versions directory:
0.8
,0.9
and1.0
. If this value is set to true, then incremental patches for both0.8->1.0
and0.9->1.0
will be generated. Otherwise, only the0.9->1.0
incremental patch will be generated. Please note that if CreateIncrementalPatch is set to false, then no incremental patches will be generated regardless of this setting - DontCreatePatchFilesForUnchangedFiles: if set to true, patch files won't be generated for files that didn't change since the last version. This could reduce bandwidth usage while uploading the generated patch files to the server
- BinaryDiffQuality: as this value increases, produced incremental patches will be smaller but it will take more time to calculate the binary diff files. Note that increasing this value will have no effect after some point (usually, higher values than the default value will produce the same binary diff file)
- CompressionFormatRepairPatch: the compression algorithm used to compress the repair patch files (LZMA, GZIP or NONE)
- CompressionFormatInstallerPatch: the compression algorithm used to compress the installer patch files (LZMA, GZIP or NONE)
- CompressionFormatIncrementalPatch: the compression algorithm used to compress the incremental patch files (LZMA, GZIP or NONE)
-
BaseDownloadURL: automatically sets the
<BaseDownloadURL>
of the generated VersionInfo while creating a patch -
MaintenanceCheckURL: automatically sets the
<MaintenanceCheckURL>
of the generated VersionInfo while creating a patch - IgnoredPaths: the paths that SimplePatchTool will ignore
- IsSelfPatchingApp: if set to true, files inside the SelfPatcher directory will automatically be copied to the latest version of the app, just before generating a patch
- Name: a unique name for your SimplePatchTool project. This name is used in several key locations, so give it a meaningful name with low collision chance and try not to change it after releasing the first version of your app. Name can contain only English letters and numbers