Repository build description¶
Installer repositories are compiled by using kcl build. This requires an Xml file that describes how to build a file repository. Here’s an example repository file:
<?xml version="1.0" ?>
<Repository>
<Features>
<Feature Id="7f9e0d24-1c82-49d3-86f9-47c0a7c984d5">
<Reference Id="c9a41343-bc90-4871-84bd-27f04aac4794"/>
</Feature>
</Features>
<Files>
<Group Id="c9a41343-bc90-4871-84bd-27f04aac4794">
<File Source="A:\full\path\file.exe" Target="bin/file.exe"/>
</Group>
<Packages>
<Package Name="bin">
<Reference Id="c9a41343-bc90-4871-84bd-27f04aac4794"/>
</Package>
</Packages>
</Files>
<UI>
<FeatureTree>
<Node Description="Binary files." Name="Binaries">
<Reference Id="7f9e0d24-1c82-49d3-86f9-47c0a7c984d5"/>
</Node>
</FeatureTree>
</UI>
</Repository>
Reference¶
The repository stores various objects which can be referenced. In general, anything which has an Id attribute can be referenced, and all references are done by adding a Reference node. Objects can be grouped by using a Group node, this makes it possible to reference many objects using a single Reference.
Repositoryis the top level node and must be always present.Featurescontains the feature list. A feature must reference another object in the repository, and must not reference another feature.Filesdescribes all file objects and the storage layout.If present,
Packagesis used to group files into packages. APackagemust have a name and it must reference an object from theFilestree. Files which are not explicitly packaged are automatically placed into amainpackage.Files can be grouped together for easy referencing using a
Groupnode.A
Filenode can reference the full source path or a relative path. If a relative path is used, the source directory must be specified during the compilation. Relative paths are automatically used for theTargetpath as well if there’s noTargetspecified.UIcontains UI related data. This data is only present in source packages and never deployed, but it’s used to create the installation UI.The
FeatureTreedefines the feature grouping. At least oneNodemust be present, and every node must reference at least oneFeature. Nodes can be arbitrarily nested.