..
.TH gacutil "Mono 1.0"
.SH NAME
-gacutil \- Global Asssembly Cache management utility.
+gacutil \- Global Assembly Cache management utility.
.SH SYNOPSIS
.PP
.B gacutil [-user] [command] [options]
.SH DESCRIPTION
-\fIgacutil\fP is a tool used by developers to install assemblies into
-the system Global Assembly Cache (GAC) to become part of the
-assemblies that are available for all applications at runtime.
+\fIgacutil\fP is a tool used by developers to install versioned
+assemblies into the system Global Assembly Cache (GAC) to become part
+of the assemblies that are available for all applications at runtime.
.PP
-Notice that they are not directly available to the compiler, the
+Notice that they are not directly available to the compiler. The
convention is that assemblies must also be placed in a separate
-directory for being accessed to the compiler. This is done with the
+directory to be accessed by the compiler. This is done with the
-package directive to gacutil.
.PP
-The tool allows for installationl, removal, and listing of the
+The tool allows for installation, removal, and listing of the
contents of the assembly cache.
.PP
The GAC is relative to the Mono installation prefix:
mono_prefix/lib/mono.
-.SH FLAGS
-The "-user" flag enables you to install/remove the assembly into the
-user's assembly cache, as opposed to the global one.
.PP
.SH COMMANDS
-.I "-i path_to_assembly" [-f] [-root ROOTDIR] [-package NAME]
+.I -i <assembly_path> [-check_refs] [-package NAME] [-root ROOTDIR] [-gacdir GACDIR]
.Sp
-The above installs the assembly into the GAC, use the -f flag to force
-an installation an overwrite anything in there.
+ Installs an assembly into the global assembly cache. <assembly_path>
+is the name of the file that contains the assembly manifest
.Sp
The -package option can be used to also create a directory in in
prefix/lib/mono with the name NAME, and a symlink is created from
NAME/assembly_name to the assembly on the GAC. This is used so
developers can reference a set of libraries at once.
.Sp
-The -root option is used by developers integrating this with automake
-tools or packaging tools that require a prefix directory to be
-specified. The root represents the "libdir" component of a prefix
-(typically prefix/lib).
+The -root option is used to specify the "libdir" value of an installation
+prefix which differs from the prefix of the system GAC.
+Typical automake usage is "-root $(DESTDIR)$(prefix)/lib".
+To access assemblies installed to a prefix other than the mono prefix,
+it is necessary to set the MONO_GAC_PREFIX environment variable.
+.Sp
+The -gacdir option is included for backward compatibility but is not
+recommended for new code. Use the -root option instead.
+.Sp
+The -check_refs option is used to ensure that the assembly being
+installed into the GAC does not reference any non strong named
+assemblies. Assemblies being installed to the GAC should not reference
+non strong named assemblies, however the is an optional check.
.fi
.PP
-.I "-l"
+.I "-l" [assembly_name] [-root ROOTDIR] [-gacdir GACDIR]
.Sp
-Lists the contents of the Global Assembly Cache
+Lists the contents of the global assembly cache. When the
+<assembly_name> parameter is specified only matching assemblies are
+listed.
.PP
-.I "-u assembly_name [-root]"
+.I "-u" <assembly_display_name> [-package NAME] [-root ROOTDIR] [-gacdir GACDIR]
.Sp
-The above removes the given assembly name from the Global Assembly
-Cache. As opposed to the install option that takes a filename, this
-takes as an argument the assembly name, which looks like this:
+Uninstalls an assembly from the global assembly cache.
+<assembly_display_name> is the name of the assembly (partial or
+fully qualified) to remove from the global assembly cache. If a
+partial name is specified all matching assemblies will be
+uninstalled. As opposed to the install option that takes a filename,
+this takes as an argument the assembly name, which looks like this:
.nf
MyLibrary.Something, version=1.0.0.0, publicKeyToken=xxxx,culture=neutral
.fi
.Sp
-Notice that you can have spaces in the command line, there is no need
+Notice that you can have spaces in the command line. There is no need
to quote them.
.Sp
-The removal performs a greedy removal, if you only specifiy one
+Performs a greedy removal. If you only specify one
component like, "MyLibrary.Something", it will remove all versions of
the library.
+.Sp
+.I "-us" <assembly_path> [-package NAME] [-root ROOTDIR] [-gacdir GACDIR]
+Uninstalls an assembly using the specified assembly's full name.
+<assembly path> is the path to an assembly. The full assembly name
+is retrieved from the specified assembly if there is an assembly in
+the GAC with a matching name, it is removed. Unlike the -u option this
+option takes a file name, like this:
+.nf
+ Example: -us myDll.dll
+.fi
+.Sp
+.I "-ul" <assembly_list_file> [-package NAME] [-root ROOTDIR] [-gacdir GACDIR]
+Uninstalls one or more assemblies from the global assembly cache.
+<assembly_list_file> is the path to a test file containing a list of
+assembly names on separate lines.
+.nf
+Example -ul assembly_list.txt
+.fi
+.nf
+assembly_list.txt contents:
+ assembly1,Version=1.0.0.0,Culture=en,PublicKeyToken=0123456789abcdef
+ assembly2,Version=2.0.0.0,Culture=en,PublicKeyToken=0123456789abcdef
+.fi
.SH FILES
On Unix assemblies are loaded from the installation lib directory. If you set
`prefix' to /usr, the assemblies will be located in /usr/lib. On