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:
Utwórz plik zasad wydawcy.
Utwórz zestaw zasad wydawcy.
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.