Updated with review feedback.
[mono.git] / man / gacutil.1
index 54838e02cc6c25a1644e5d5975ffe0aa5bf2fa13..6b9ffd5c2b06f3a6926412396b477fe44c951bec 100644 (file)
 .if t .sp .5v
 .if n .sp
 ..
-.TH gacutil "Mono 1.0"
+.TH Mono "gacutil"
 .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