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č, ve kterém je nainstalovaný modul Clr (Common Language Runtime), má mezipaměť kódu pro celý počítač označovanou jako 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í, aby byly přístupné pro zprostředkovatele komunikace modelu COM nebo nespravovaný kód.

Poznámka:

Existují scénáře, kdy explicitně 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í mezipaměti sestavení.

Existují dva způsoby nasazení sestavení do globální mezipaměti sestavení:

  • 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 označovaný jako nástroj Global Assembly Cache (Gacutil.exe) poskytovaný sadou Windows SDK.

    Poznámka:

    Ve scénářích nasazení pomocí Instalační služby systému Windows nainstalujte 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 počítání odkazů na sestavení a další funkce poskytované při použití Instalační služby systému Windows.

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ím umístěním %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é