XML reference

<< Click to Display Table of Contents >>

Navigation:  Automated package builder (command-line) >

XML reference

Properties section:

Example:

<Properties>

 <Property AppID="Cameyo" />

 <Property Version="1.60.0.0" />

 <Property IconFile="Packager.exe" />                <!-- Copy the package icon from this file -->

 <Property ExpandSource="TRUE" />                        <!-- i.e convert source="%Windows\Notepad.exe" into "C:\Windows\Notepad.exe" -->

 

This section defines properties in the form: <Property PropertyName="Value" />

There are 3 types of properties you can define here, depending on the property's name:

1.Special build properties (see below), some of which are required.

2.Override Cameyo's special properties to take effect during the application's execution. See Cameyo's properties.

3. Define any arbitrary properties you can use throughout the XML itself. For example, if you define a property called "MyOwn=ABC.TXT", then later on you can reuse that property later in the XML file, i.e: <File source="C:\[MyOwn]" />, or even in the definition of another property.

 

Special ZeroInstaller properties:

AppID: application's name. Defines both the output executable's name and the virtual package's AppID property (Cameyo's internal application ID). The name must only contain legal filename characters.

IconFile: file from which the output executable's icon is to be copied.

BuildOutput (optional): name of the output executable. If no name is defined, the default name is AppID property + .exe.

InputDir (optional): working path for the FileSystem section.

ExpandSource (optional, default: false): indicates whether you'd like to expand XML file source names. For example, if you'd like <File source="%Windows%\Notepad.exe" /> to expand into C:\Windows\Notepad.exe, then you'd specify "true". If you'd like to keep the directory named "%Windows%\Notepad.exe" (for example if that is a sub-directory of your project dir), then you can leave it on "false" (default behavior).

 

FileSystem section:

Example:

<FileSystem>

 <File source="Loader.exe" targetdir="%Program Files%\Cameyo" />

 <File source="Packager.exe" targetdir="%Program Files%\Cameyo" />

 <File source="Launcher.exe" targetdir="%Program Files%\Cameyo" autoLaunch="[AppID]" />

</FileSystem>

 

This section defines virtual files that are to be part of the application's package. They will be shown (virtualized) to the target application as if they exist in the indicated path.

Syntax: <File source="..." target/targetdir="..." />, where:

source: path to the file to include in the package. The path is relative to the working directory. If the property InputDir was defined, then this path is relative to it. Otherwise, it is relative to the current directory (path where ZeroInstaller.exe was launched from).

target / targetdir: defines where the application needs the file to appear (virtually) to the application. "target" specifies the target directory + file name. "targetdir" only defines the target directory (keeping the filename portion same as the source).

autoLaunch (optional): if defined, this file will be part of the application's auto-launch list. If the auto-launch list contains only one executable, it will be executed when the application is launched. If it contains more executables, a startup menu will be displayed for the user to choose which program to launch. The value of the autoLaunch property sets the text displayed to the user when the menu is displayed.

autoLaunchArgs (optional): provides execution parameters for autoLaunch.

Paths can include Cameyo's Path variables.

 

Registry section:

You can define registry values in one of two ways. Either by specifying a full path in the "Value" node:

<Registry>

 <Value path="%CurrentUser%\Software\Cameyo\Version" string="[Version]" />

 <Value path="MACHINE\Software\Cameyo\SomeValue" string="Hello world" />

</Registry>

 

Or by embedding the Value node within a Key node:

<Registry>

 <Key path="%CurrentUser%\Software\Cameyo">

         <Value name="Version" string="[Version]" />

 </Key>

</Registry>

 

This section defines virtual registry keys that are to be part of the application's package. They will be shown (virtualized) to the target application as if they exist in the indicated path.

Syntax: <Value path="..." string="..." /> or: <Key path="..."><Value name="..." string="..." /></Key>

Supported value types:

string="abc"

dword="12af" equals hexadecimal number 0x12af

bin="1234abcd" equals binary hex data: 12 34 ab cd

 

Note that registry keys are indicated in native paths.

 

Sandbox section:

Example:

<Sandbox>

 <FileSystem access="Isolated" />                                        <- Default sandboxing

 <FileSystem path="%AppData%" access="Full" />                        <- Full: read/write to the host's directory

 <FileSystem path="%Personal%" access="StrictlyIsolated" />        <- StrictlyIsolated: hide the host's directory contents from app

 <Registry access="Full" />

 <Registry path="MACHINE\Software\Microsoft" access="Isolated" />

</Sandbox>

 

This section defines how the virtual application interacts with the host system's file-system and registry: full access, or isolated access modes.

Syntax: <FileSystem/Registry path="..." access="..." />

 

Beware however that if a folder already exists in your virtual application, then any changes will go there. For example if your virtual application has a folder named %AppData%\MyApp, then any files saved by the application into %AppData%\MyApp will go into the virtual app's sandbox, not into the real machine, regardless of the sandbox isolation mode.

 

Note that registry keys are indicated in native paths.