ilgac(1)

NAME
ilgac - manage the Portable.NET assembly cache

SYNOPSIS
ilgac [ options ] [ assembly [ version ] ]

DESCRIPTION
Ilgac manages the Portable.NET assembly cache, allowing library assemblies to be installed, uninstalled, or listed.

OPTIONS

-i, --install
    Install the specified assemblies into the cache. See the section "INSTALLING ASSEMBLIES" below for more information.

-u, --uninstall
    Uninstall the specified assemblies from the cache. See the section "UNINSTALLING ASSEMBLIES" below for more information.

-l, --list
    List the contents of the assembly cache. See the section "LISTING ASSEMBLIES" below for more information.

-f, --force
    Force installation to proceed even if there is an existing assembly with the specified name and version.

-d, --default
    Install the assembly as the fallback default version. When used with `--list', this will list the fallback default versions in addition to the regular assembly versions.

-L, --link
    Create a symbolic link within the cache rather than copying the assembly.

-S DIR, --subdir DIR
    Specify a resource sub-directory (e.g. "de").

-c DIR, --cache DIR
    Specify the location of the assembly cache.

-s, --silent
    Do not print status messages.

--help
    Print a usage message for the ilgac program.

-v, --version
    Print the version of the ilgac program.

--  Marks the end of the command-line options, and the beginning of the input filenames. You may need to use this if your filename begins with '-'. e.g. "ilgac -i -- -input.dll".

INSTALLING ASSEMBLIES
In the examples that follow, we assume that the assemblies have the version number `1.2.3400.0' unless otherwise stated. The following command-line installs the assembly `foobar.dll' within the assembly cache and makes it the default version:

    ilgac --install --default foobar.dll

This will create the following file and symbolic link under the top-level cache directory:

    1.2.3400.0/foobar.dll
    foobar.dll -> 1.2.3400.0/foobar.dll

Note: if the assembly version number is `0.0.0.0', then the assembly will be stored in the main directory without a symbolic link. You can install an older version (1.1.5000.0) of `foobar.dll' side by side by omitting the `--default' option:

    ilgac --install foobar.dll

After installing both, the assembly cache directory structure will look like this:

    1.1.5000.0/foobar.dll
    1.2.3400.0/foobar.dll
    foobar.dll -> 1.2.3400.0/foobar.dll

The runtime engine, ilrun(1), will first look in the version sub-directory for an exact match. If a match is not found, it will then look for the default version in the top-level cache directory. If you had a satelite resource assembly for German, then you would install it as follows:

    ilgac --install --default --subdir de foobar.resources.dll

After all of the above commands, the directory structure will appear as follows:

    1.1.5000.0/foobar.dll
    1.2.3400.0/foobar.dll
    1.2.3400.0/de/foobar.resources.dll
    foobar.dll -> 1.2.3400.0/foobar.dll
    de/foobar.resources.dll -> 1.2.3400.0/de/foobar.resources.dll

You can install multiple assemblies at once by specifying them one at a time on the command-line:

    ilgac --install --default foobar.dll example.dll

UNINSTALLING ASSEMBLIES
The easiest way to uninstall an assembly is to specify its name and version number:

    ilgac --uninstall foobar 1.2.3400.0

This will search the assembly cache for a match and remove the corresponding assembly. If the assembly is registered as a default fallback, then the default symbolic link will also be removed. If the version number is unknown, you can retrieve it from an existing assembly with the same version. For example:

    ilgac --uninstall foobar.dll

LISTING ASSEMBLIES
The entire contents of the assembly cache can be listed using the following command:

    ilgac --list

Normally, only the main version of an assembly is listed - symbolic links for default versions are omitted. They can be included in the output by specifying the `--default' command-line option. You can list all assemblies that match particular name or version combinations as follows:

    ilgac --list foobar
    ilgac --list 1.2.3400.0
    ilgac --list foobar 1.2.3400.0 example 1.1.5000.0

AUTHOR
Written by Southern Storm Software, Pty Ltd. http://www.southern-storm.com.au/

SEE ALSO
ilrun(1), cscc(1), csant(1)

DIAGNOSTICS
Exit status is 1 if an error occurred while processing the input. Otherwise the exit status is 0.

BUGS
Under Windows, the default versions of assemblies are always stored in the main cache directory because it isn't possible to create symbolic links.