[Pkg-mono-svn-commits] rev 2429 - cli-common/trunk
Sebastian Dröge
slomo-guest at costa.debian.org
Fri Apr 14 10:37:52 UTC 2006
Author: slomo-guest
Date: 2006-04-14 10:37:51 +0000 (Fri, 14 Apr 2006)
New Revision: 2429
Modified:
cli-common/trunk/cli-policy.sgml
Log:
* add policy file and api-check example to the cli policy
Modified: cli-common/trunk/cli-policy.sgml
===================================================================
--- cli-common/trunk/cli-policy.sgml 2006-04-13 17:24:47 UTC (rev 2428)
+++ cli-common/trunk/cli-policy.sgml 2006-04-14 10:37:51 UTC (rev 2429)
@@ -792,14 +792,58 @@
<sect1 id="api-compat-example">
<heading>API Compatibility Check Example</heading>
+ <p>
+ You must have the mono-mcs, libmono-sharpzip0.6-cil and libmono-sharpzip0.84-cil packages installed for this.
+ <example>
+mono-api-check /usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.6.0.0__1b03e6acf1164f73/ICSharpCode.SharpZipLib.dll \
+ /usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.84.0.0__1b03e6acf1164f73/ICSharpCode.SharpZipLib.dll
+CLI API Check
+Assembly Name: ICSharpCode.SharpZipLib
+Missing Interfaces: 44
+Additional Interfaces: 79
- <p>TODO</p>
+The two assemblies you compared are NOT API compatible!
+You must use a new package name!
+
+The new assembly has additional interfaces. You must raise
+the minimal version in clilibs!
+ </example>
+ The mono-api-check wrapper script checks whether there are new public/protected interfaces (where interface
+ in this context means namespace, class, method, interface, delegate, etc) or any missing ones. When an interface
+ is changed it will show up as missing and additional. You should follow the instructions, in this case you must
+ create a new versioned package for the library and raise the minimal version number for the
+ <qref id="dh_makeclilibs">dh_makeclilibs</qref> call.
+ </p>
</sect1>
<sect1 id="gac-policy-file-example">
<heading>GAC Policy File Example</heading>
-
- <p>TODO</p>
+ <p>
+ <example>
+<configuration>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="foo" publicKeyToken="35e10195dab3c99f" />
+ <bindingRedirect oldVersion="1.2.0.0-1.2.10.0" newVersion="1.3.0.0"/>
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration>
+ </example>
+ The above example would be used for a policy file for the "foo" assembly and would tell
+ the <qref id="GAC">GAC</qref> that version 1.3.0.0 is compatible with versions 1.2.0.0 to 1.2.10.0.
+ You have to compile and install it with
+ <example>
+al -link:policy.foo.1.2.config -out:policy.1.2.foo.dll -keyfile:path/to/keyfile
+gacutil /i policy.1.2.foo.dll
+ </example>
+ </p>
+ <p>
+ Keep in mind that the filenames MUST be policy.foo.X.Y.config and policy.foo.X.Y.dll where
+ foo is the assembly name and X.Y is the major and minor version number you want to be compatible
+ with.
+ </p>
</sect1>
</sect>
More information about the Pkg-mono-svn-commits
mailing list