Delen via


Global Assembly Cache

Notitie

Dit artikel is specifiek voor .NET Framework. Dit geldt niet voor nieuwere implementaties van .NET, waaronder .NET 6 en nieuwere versies.

Elke computer waarop Common Language Runtime is geïnstalleerd, heeft een codecache voor de hele machine, de Global Assembly Cache. In de Global Assembly Cache worden assembly's opgeslagen die specifiek zijn bedoeld om te worden gedeeld door verschillende toepassingen op de computer.

U moet assembly's delen door ze alleen in de Global Assembly Cache te installeren wanneer dat nodig is. Als algemene richtlijn houdt u assemblyafhankelijkheden privé en zoekt u assembly's in de toepassingsmap, tenzij het delen van een assembly expliciet is vereist. Bovendien is het niet nodig om assembly's te installeren in de Global Assembly Cache om ze toegankelijk te maken voor COM-interoperabiliteit of onbeheerde code.

Notitie

Er zijn scenario's waarin u expliciet geen assembly wilt installeren in de Global Assembly Cache. Als u een van de assembly's in de Global Assembly Cache plaatst, kunt u de toepassing niet meer repliceren of installeren met behulp van de xcopy-opdracht om de toepassingsmap te kopiëren. U moet de assembly ook verplaatsen in de Global Assembly Cache.

Er zijn twee manieren om een assembly te implementeren in de Global Assembly Cache:

  • Gebruik een installatieprogramma dat is ontworpen om te werken met de Global Assembly Cache. Dit is de voorkeursoptie voor het installeren van assembly's in de Global Assembly Cache.

  • Gebruik een ontwikkelhulpprogramma met de naam Global Assembly Cache (Gacutil.exe) dat wordt geleverd door de Windows SDK.

    Notitie

    In implementatiescenario's gebruikt u Windows Installer om assembly's te installeren in de Global Assembly Cache. Gebruik het hulpprogramma Global Assembly Cache alleen in ontwikkelscenario's, omdat het geen referentietelling voor assembly's en andere functies biedt die worden geboden bij het gebruik van Windows Installer.

Vanaf .NET Framework 4 is de standaardlocatie voor de Global Assembly Cache %windir%\Microsoft.NET\assembly. In eerdere versies van .NET Framework is de standaardlocatie %windir%\assembly.

Beheerders beveiligen de systeemmap vaak met behulp van een toegangsbeheerlijst (ACL) om schrijf- en uitvoertoegang te beheren. Omdat de Global Assembly Cache is geïnstalleerd in een submap van de systeemhoofdmap, neemt deze de ACL van die map over. Het wordt aanbevolen om alleen gebruikers met beheerdersbevoegdheden toe te staan om bestanden te verwijderen uit de Global Assembly Cache.

Assembly's die zijn geïmplementeerd in de Global Assembly Cache, moeten een sterke naam hebben. Wanneer een assembly wordt toegevoegd aan de Global Assembly Cache, worden integriteitscontroles uitgevoerd op alle bestanden waaruit de assembly bestaat. De cache voert deze integriteitscontroles uit om ervoor te zorgen dat er niet met een assembly is geknoeid, bijvoorbeeld wanneer een bestand is gewijzigd, maar het manifest niet overeenkomt met de wijziging.

Zie ook