Sdílet prostřednictvím


Globální mezipaměť sestavení

Poznámka:

Tento článek je specifický pro rozhraní .NET Framework. Nevztahuje se na novější implementace .NET, včetně .NET 6 a novějších verzí.

Každý počítač, na kterém je nainstalován Common Language Runtime, má strojovou mezipaměť kódu nazvanou Globální mezipaměť sestavení (Global Assembly Cache). Globální mezipaměť sestavení ukládá sestavení určená speciálně pro sdílení několika aplikacemi v počítači.

Sestavení byste měli sdílet tak, že je nainstalujete do globální mezipaměti sestavení pouze v případě, že je potřebujete. Obecně platí, že ponechte závislosti sestavení jako soukromé a vyhledejte sestavení v adresáři aplikace, pokud není explicitně vyžadováno sdílení sestavení. Kromě toho není nutné instalovat sestavení do globální mezipaměti sestavení pro zajištění jejich přístupnosti pro COM interop nebo neřízený kód.

Poznámka:

Existují scénáře, kdy výslovně nechcete instalovat sestavení do Globální mezipaměti sestavení. Pokud umístíte jedno ze sestavení, která tvoří aplikaci v globální mezipaměti sestavení, nebudete již moci aplikaci replikovat ani instalovat pomocí příkazu xcopy ke zkopírování adresáře aplikace. Sestavení musíte také přesunout do globálního úložiště sestavení.

Dva způsoby nasazení sestavení do Globální mezipaměti sestavení (GAC) jsou:

  • Použijte instalační program navržený pro práci s globální mezipamětí sestavení. Toto je upřednostňovaná možnost instalace sestavení do Globální mezipaměti sestavení.

  • Použijte vývojářský nástroj s názvem Global Assembly Cache (Gacutil.exe), který poskytuje sada Windows SDK.

    Poznámka:

    Ve scénářích nasazení používejte Instalátor systému Windows k instalaci sestavení do globální mezipaměti sestavení. Nástroj Globální mezipaměť sestavení používejte pouze ve vývojových scénářích, protože neposkytuje funkci počítání odkazů na sestavení a další funkce dostupné při použití Windows Instaleru.

Počínaje rozhraním .NET Framework 4 je výchozím umístěním globální mezipaměti sestavení %windir%\Microsoft.NET\assembly. Ve starších verzích rozhraní .NET Framework je výchozí umístění %windir%\assembly.

Správci často chrání adresář systemroot pomocí seznamu řízení přístupu (ACL) k řízení přístupu a provádění přístupu. Protože je globální mezipaměť sestavení nainstalovaná v podadresáři adresáře systemroot, dědí seznam ACL daného adresáře. Doporučuje se, aby soubory z globální mezipaměti sestavení mohli odstraňovat jenom uživatelé s oprávněními správce.

Sestavení nasazená v globální mezipaměti sestavení musí mít silný název. Při přidání sestavení do globální mezipaměti sestavení se kontroly integrity provádějí u všech souborů, které tvoří sestavení. Mezipaměť provádí tyto kontroly integrity, aby se zajistilo, že sestavení nebylo manipulováno, například při změně souboru, ale manifest neodráží změnu.

Viz také