All information about your package resides in a manifest file that is loaded by the host process. It describes the modules in the package, and the files and metadata for each module.
From this file is determined entry points for your module(s), dependent files that need synchronising between the WinGate engine and WinGate Management Console and to ensure they haven't been tampered with. In order to prepare a manifest file for distribution you need to run the ManifestPrep utility on it which is found in the tools directory of the SDK.
Here is an example manifest file.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <wingatePackage packageVersion="1.0"> <package id="{1a3e50d9-bd41-4c1a-a8eb-b81b2aa593f3}" name="Facebook sanitiser" description="Turns all Facebook pictures into pictures of cats" > <modules> <module name="Facebook Sanitiser UI" host="UI" id="{2a1d44a9-db14-2c3c-a1eb-b61b3db697e3}" subPath="" debugPath="UI\Debug" releasePath="UI\Release"> <dependencies> <dependency file="FBSanitiserUI.dll" description="Sanitiser UI dll" entryPoint="1" > <md5 value="" /> <platform os="Any" /> <destination value="local" /> <signInfo path="%SourceRoot%\MyModules\FBSanitiser\UI\Release" /> </dependency> </dependencies> </module> <module name="Facebook Sanitiser Engine" host="Engine" id="{0b3b5011-ca0d-23d6-a9ea-711c5b43f7bd}" subPath="" debugPath="Engine\Debug" releasePath="Engine\Release"> <dependencies> <dependency file="FBSanitiserEng.dll" description="Sanitiser Engine dll" entryPoint="1" > <md5 value="" /> <platform os="Any" /> <destination value="local" /> <signInfo path="%SourceRoot%\MyModules\FBSanitiser\Engine\Release" /> </dependency> </dependencies> </module> </modules> </package> </wingatePackage> |
All packages must have this node, along with a packageVersion attribute with a value of "1.0". The Manifest Prep tool will fail if this node is not present.
Describes the package as a whole.
id - The UUID of your package.
name - The user displayable name of your package.
description - A user displayable description of your package.
Root node for the modules within your package.
Describes a single module within your package.
name - User friendly name of this module.
You may wish to distinguish between the UI or Engine versions of your module to make it easier to identify in the Modules panel in the WinGate Management Console |
host - What host should be used to load this module. Acceptable values are "UI", "Engine" and "All". Only specified hosts will attempt to load the module.
id - The UUID of the module.
subPath - Must be empty.
debugPath - The path relative to the manifest file where module files are located when running in debug mode. NOTE: Only valid when running with a WinGate Developer License
releasePath - The path relative to the manifest file where module files are located when running in release mode. NOTE: Only valid when running with a WinGate Developer License
debugPath and releasePath attributes are stripped by the Manifest Prep tool. |
Root path for module dependencies
Describes a single dependency file
file - The filename of the file
description - A user friendly description of this file
entryPoint - Indicates whether this file is considered the Entry Point for the module. Value values are "1" and "0"
value - Filled out by the Manifest Prep tool with the MD5 of this dependency file's contents. Leave blank.
os - The operating system that this dependency will be synchronised for. Supported values are Any, Nt351, Nt4, Xp, 2k, 2k3, Vista, 7, 2k8, 2k8R2 - Windows 8 and 10 TBD
value - Where the dependency's destination is. Values are:
local - File is placed in the same location as the manifest file
shared - File is placed in the WinGate installation directory
path - The folder that holds the final version of this dependency that should be signed. See SourceRoot for more information.