SIGN UP MEMBER LOGIN:    
ARTICLE

Configuring Publisher Policy File

Posted by Sudheer Adimulam Articles | Security in .NET February 20, 2004
Versioning in the Microsoft .NET Framework is managed at the assembly level and is only used when locating strong-named assemblies. By default, the common language runtime loads the assembly whose entire version number matches the version number in the calling assembly's metadata.
Reader Level:

Versioning in the Microsoft .NET Framework is managed at the assembly level and is only used when locating strong-named assemblies.

By default, the common language runtime loads the assembly whose entire version number matches the version number in the calling assembly's metadata.

However, the runtime can be instructed to load a different version of an assembly by using version policy.

You can control how the common language runtime locates an assembly by providing it with a set of binding rules.

As the vendor of the referenced assembly, you can create a publisher policy configuration file and use the <bindingRedirect> and <codeBase> elements to force the application to use the latest version of your assembly.

The document describes the steps that are required to create a publisher policy file.

The publisher policy configuration file is used to force all the applications to use a newer version of the assembly, there will two assemblies installed by doing this.

The first assembly, publisher policy assembly contains only the publisher policy configuration file and must be installed in the GAC, because versioning changes effect all applications that use the assembly. The second assembly contains the code that is referenced by other assemblies.

Steps in Creating Publisher Policy Assembly

Creating the Publisher Policy File:

The following is an example of a publisher policy configuration file:

<configuration>
<runtime>
<
assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<
dependentAssembly>
<
assemblyIdentity name="myasm"
publicKeyToken="e9b4c4996039ede8"
culture="en-US"/>
<
bindingRedirect oldVersion="1.0.0.0 "
newVersion="2.0.0.0"/>
<
codeBase version="2.0.0.0"
href="http://www.mysite.com/my.dll"/>
</
dependentAssembly>
</
assemblyBinding>
</
runtime>
</
configuration>

The information for each assembly that requires redirection is placed inside the <dependentAssembly> element of the publisher policy configuration file.

The <bindingRedirect> element redirects the reference to a different version of a strong-named assembly by overriding the version in the original reference with a reference to the newer version. In the previous example the assembly reference to version 1.0.0.0 is redirected to version 2.0.0.0.

Compiling the Publisher Policy Assembly

The Assembly Generation tool (Al.exe) is used to compile a publisher policy assembly. The following command demonstrates how the Assembly Generation tool is used to build a publisher policy assembly:

al /link:myAssembly.dll.config /out:policy.1.0.myAssembly.dll
/keyfile:sgKey.snk

The output file name must be in the following format:

policy.< major >.< minor >.< assembly name >.< assembly extension

Adding the Publisher Policy Assembly to the Global Assembly Cache

Use the Global Assembly Cache tool (Gacutil.exe) to add the publisher policy assembly to the global assembly cache.

To add the publisher policy assembly to the global assembly cache

  • Type the following command at the command prompt:

    gacutil /i publisherPolicyAssemblyFile
  • The following command adds policy.1.0.myAssembly.dll to the global assembly cache.

    gacutil /i policy.1.0.myassembly.dll

Login to add your contents and source code to this article
share this article :
post comment
 
Nevron Gauge for SharePoint
Become a Sponsor
PREMIUM SPONSORS
  • ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications. Visit DynamicPDF here
    The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
Nevron Gauge for SharePoint
Become a Sponsor