Procedura: creare criteri editore

Nota

Questo articolo è specifico per .NET Framework. Non si applica alle implementazioni più recenti di .NET, incluse .NET 6 e versioni successive.

I fornitori di assembly possono dichiarare che le applicazioni devono usare una versione più recente di un assembly includendo un file di criteri di pubblicazione con l'assembly aggiornato. Il file dei criteri di pubblicazione specifica le impostazioni di reindirizzamento degli assembly e del codebase e usa lo stesso formato di un file di configurazione dell'applicazione. Il file dei criteri di pubblicazione viene compilato in un assembly e inserito nella Global Assembly Cache.

La creazione di un criterio di pubblicazione prevede tre passaggi:

  1. Creare un file dei criteri di pubblicazione.

  2. Creare un assembly dei criteri di pubblicazione.

  3. Aggiungere l'assembly dei criteri di pubblicazione alla Global Assembly Cache.

Lo schema per i criteri di pubblicazione è descritto in Reindirizzamento delle versioni di assembly. Nell'esempio seguente viene illustrato un file di criteri di pubblicazione che reindirizza una versione di myAssembly a un'altra.

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
         <assemblyIdentity name="myAssembly"
                           publicKeyToken="32ab4ba45e0a69a1"
                           culture="en-us" />
         <!-- Redirecting to version 2.0.0.0 of the assembly. -->
         <bindingRedirect oldVersion="1.0.0.0"
                          newVersion="2.0.0.0"/>
       </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

Per informazioni su come specificare un codebase, vedere Specifica del percorso di un assembly.

Creazione dell'assembly dei criteri del server di pubblicazione

Usare Assembly Linker (Al.exe) per creare l'assembly dei criteri di pubblicazione.

Per creare un assembly dei criteri di pubblicazione

Inserire il seguente comando nel prompt dei comandi:

al /link:publisherPolicyFile /out:publisherPolicyAssemblyFile /keyfile:keyPairFile /platform:processorArchitecture

In questo comando:

  • L'argomento publisherPolicyFile è il nome del file dei criteri di pubblicazione.

  • L'argomento publisherPolicyAssemblyFile è il nome dell'assembly dei criteri di pubblicazione risultante da questo comando. Il nome del file di assembly deve seguire il formato:

    `policy.majorNumber.minorNumber.mainAssemblyName.dll'

  • L'argomento keyPairFile è il nome del file contenente la coppia di chiavi. È necessario firmare l'assembly e l'assembly dei criteri di pubblicazione con la stessa coppia di chiavi.

  • L'argomento processorArchitecture identifica la piattaforma di destinazione di un assembly specifico del processore.

    Nota

    La possibilità di specificare come destinazione un'architettura di processore specifica è disponibile a partire da .NET Framework 2.0.

La possibilità di specificare come destinazione un'architettura di processore specifica è disponibile a partire da .NET Framework 2.0. Il comando seguente crea un assembly dei criteri di pubblicazione denominato policy.1.0.myAssembly da un file di criteri di pubblicazione denominato pub.config, assegna un nome sicuro all'assembly usando la coppia di chiavi nel file sgKey.snk e specifica che l'assembly è destinato all'architettura del processore x86.

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

L'assembly dei criteri di pubblicazione deve corrispondere all'architettura del processore dell'assembly a cui si applica. Pertanto, se l'assembly ha un valore ProcessorArchitecture di MSIL, l'assembly dei criteri di pubblicazione per tale assembly deve essere creato con /platform:anycpu. È necessario fornire un assembly di criteri di pubblicazione separato per ogni assembly specifico del processore.

Una conseguenza di questa regola è che per modificare l'architettura del processore di un assembly, è necessario modificare il componente principale o secondario del numero di versione, in modo da poter fornire un nuovo assembly di criteri di pubblicazione con l'architettura del processore corretta. L'assembly dei criteri di pubblicazione non può eseguire il servizio dell'assembly se quest'ultimo presenta un'architettura di processore diversa.

Un'altra conseguenza è che il linker versione 2.0 non può essere usato per creare un assembly dei criteri di pubblicazione per un assembly compilato usando le versioni precedenti di .NET Framework, perché specifica sempre l'architettura del processore.

Aggiunta dell'assembly dei criteri di pubblicazione alla Global Assembly Cache

Usare lo strumento Global Assembly Cache (Gacutil.exe) per aggiungere l'assembly dei criteri di pubblicazione alla Global Assembly Cache.

Per aggiungere l'assembly dei criteri di pubblicazione alla Global Assembly Cache

Inserire il seguente comando nel prompt dei comandi:

gacutil /i publisherPolicyAssemblyFile

Il comando seguente aggiunge policy.1.0.myAssembly.dll alla Global Assembly Cache.

gacutil /i policy.1.0.myAssembly.dll

Importante

L'assembly dei criteri di pubblicazione non può essere aggiunto alla Global Assembly Cache a meno che il file dei criteri di pubblicazione originale specificato nell'argomento /link si trovi nella stessa directory dell'assembly.

Vedi anche