Udostępnij za pośrednictwem


Porady: tworzenie zasad wydawcy

Uwaga

Ten artykuł jest specyficzny dla programu .NET Framework. Nie ma zastosowania do nowszych implementacji platformy .NET, w tym .NET 6 i nowszych wersji.

Dostawcy zestawów mogą stwierdzić, że aplikacje powinny używać nowszej wersji zestawu, dołączając plik zasad wydawcy z uaktualnionym zestawem. Plik zasad wydawcy określa przekierowanie zestawu i ustawienia podstawowe kodu i używa tego samego formatu co plik konfiguracji aplikacji. Plik zasad wydawcy jest kompilowany w zestawie i umieszczany w globalnej pamięci podręcznej zestawów.

Istnieją trzy kroki związane z tworzeniem zasad wydawcy:

  1. Utwórz plik zasad wydawcy.

  2. Utwórz zestaw zasad wydawcy.

  3. Dodaj zestaw zasad wydawcy do globalnej pamięci podręcznej zestawów.

Schemat zasad wydawcy został opisany w temacie Przekierowywanie wersji zestawów. Poniższy przykład przedstawia plik zasad wydawcy, który przekierowuje jedną wersję myAssembly do innej.

<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>

Aby dowiedzieć się, jak określić bazę kodu, zobacz Określanie lokalizacji zestawu.

Tworzenie zestawu zasad wydawcy

Użyj konsolidatora zestawów (Al.exe), aby utworzyć zestaw zasad wydawcy.

Aby utworzyć zestaw zasad wydawcy

Wpisz następujące polecenie w wierszu polecenia:

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

W tym poleceniu:

  • Argument publisherPolicyFile jest nazwą pliku zasad wydawcy.

  • Argument publisherPolicyAssemblyFile jest nazwą zestawu zasad wydawcy, który wynika z tego polecenia. Nazwa pliku zestawu musi być zgodna z formatem:

    "policy.majorNumber.minorNumber.mainAssemblyName.dll"

  • Argument keyPairFile jest nazwą pliku zawierającego parę kluczy. Należy podpisać zestaw i zestaw zasad wydawcy za pomocą tej samej pary kluczy.

  • Argument processorArchitecture identyfikuje platformę docelową zestawu specyficznego dla procesora.

    Uwaga

    Możliwość kierowania konkretnej architektury procesora jest dostępna od programu .NET Framework 2.0.

Możliwość kierowania konkretnej architektury procesora jest dostępna od programu .NET Framework 2.0. Następujące polecenie tworzy zestaw zasad wydawcy wywoływany policy.1.0.myAssembly z pliku zasad wydawcy o nazwie pub.config, przypisuje silną nazwę do zestawu przy użyciu pary kluczy w sgKey.snk pliku i określa, że zestaw jest przeznaczony dla architektury procesora x86.

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

Zestaw zasad wydawcy musi być zgodny z architekturą procesora zestawu, którego dotyczy. W związku z tym jeśli zestaw ma ProcessorArchitecture wartość MSIL, zestaw zasad wydawcy dla tego zestawu musi zostać utworzony za pomocą polecenia /platform:anycpu. Należy podać oddzielny zestaw zasad wydawcy dla każdego zestawu specyficznego dla procesora.

Konsekwencją tej reguły jest to, że aby zmienić architekturę procesora dla zestawu, należy zmienić główny lub pomocniczy składnik numeru wersji, aby można było podać nowy zestaw zasad wydawcy z poprawną architekturą procesora. Stary zestaw zasad wydawcy nie może obsługiwać zestawu, gdy zestaw ma inną architekturę procesora.

Kolejną konsekwencją jest to, że konsolidator wersji 2.0 nie może służyć do tworzenia zestawu zasad wydawcy dla zestawu skompilowanego przy użyciu wcześniejszych wersji programu .NET Framework, ponieważ zawsze określa architekturę procesora.

Dodawanie zestawu zasad wydawcy do globalnej pamięci podręcznej zestawów

Użyj narzędzia Global Assembly Cache (Gacutil.exe), aby dodać zestaw zasad wydawcy do globalnej pamięci podręcznej zestawów.

Aby dodać zestaw zasad wydawcy do globalnej pamięci podręcznej zestawów

Wpisz następujące polecenie w wierszu polecenia:

gacutil /i publisherPolicyAssemblyFile

Następujące polecenie dodaje policy.1.0.myAssembly.dll do globalnej pamięci podręcznej zestawów.

gacutil /i policy.1.0.myAssembly.dll

Ważne

Nie można dodać zestawu zasad wydawcy do globalnej pamięci podręcznej zestawów, chyba że oryginalny plik zasad wydawcy określony w argumencie /link znajduje się w tym samym katalogu co zestaw.

Zobacz też