<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Global_Assembly_Cache</id>
	<title>Global Assembly Cache - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Global_Assembly_Cache"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Global_Assembly_Cache&amp;action=history"/>
	<updated>2026-05-22T01:57:56Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Global_Assembly_Cache&amp;diff=957578&amp;oldid=prev</id>
		<title>imported&gt;WikiuUser.elefant: /* growthexperiments-addlink-summary-summary:1|0|0 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Global_Assembly_Cache&amp;diff=957578&amp;oldid=prev"/>
		<updated>2025-06-19T12:35:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:1|0|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der &amp;#039;&amp;#039;&amp;#039;Global Assembly Cache&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;GAC&amp;#039;&amp;#039;&amp;#039;; {{deS|„Globaler Assembly-Zwischenspeicher“}}) ist ein Verfahren des [[.NET-Framework]]s, um [[DLL-Konflikt|Versionskonflikte zwischen Programmbibliotheken]] zu vermeiden.&lt;br /&gt;
&lt;br /&gt;
== Identität und Installation im GAC ==&lt;br /&gt;
Die Identität einer [[.NET Framework#Assemblies|Assembly]] setzt sich aus fünf Komponenten zusammen: dem &amp;#039;&amp;#039;Namen&amp;#039;&amp;#039;, der &amp;#039;&amp;#039;Dateiversion&amp;#039;&amp;#039;, der &amp;#039;&amp;#039;Sprachversion&amp;#039;&amp;#039;, dem öffentlichen &amp;#039;&amp;#039;Schlüsseltoken&amp;#039;&amp;#039; und der &amp;#039;&amp;#039;[[Prozessorarchitektur]]&amp;#039;&amp;#039;, für die die Assembly [[Kompilierung|übersetzt]] wurde. Die Identität der Assembly wird über einen so genannten „starken Namen“ gesichert. Dabei wird der Name durch die Signierung der Assembly mit einem [[Öffentlicher Schlüssel|öffentlichen Schlüssel]] geschützt. Es ist möglich, eine Assembly durch Signierung mit unterschiedlichen Schlüsseln mehrfach im GAC zu installieren. Somit kann z.&amp;amp;nbsp;B. ein Softwarehersteller eine quelloffene Bibliothek verändern ([[Patch (Software)|patchen]]) und mit seinen eigenen Keys signieren. Diese Assembly kann dann trotz gleichen Namens und Versionsnummer im GAC neben der ursprünglichen Assembly installiert werden. [[Lokalisierung (Softwareentwicklung)|Lokalisierte Versionen]] wie z.&amp;amp;nbsp;B. für Deutsch oder Französisch (DE, FR) sind ebenso Teil der Identität der Assembly wie die Optimierung auf eine Prozessorplattform ([[Common Intermediate Language|CIL(MSIL)]], x86, [[x64]]). &lt;br /&gt;
&lt;br /&gt;
Der GAC ermöglicht somit die systemweite Bereitstellung von Assemblies, ohne Namenskonflikte der zugrundeliegenden [[Datei]]en ([[Dynamic Link Library|DLLs]] oder [[EXE]]s) in Kauf zu nehmen. Die sogenannte „[[DLL Hell]]“ wurde durch die Einführung des GAC konsequent umgangen. &lt;br /&gt;
&lt;br /&gt;
Die Installation der Dateien im GAC geschieht üblicherweise über den [[Windows Installer]], kann aber auch manuell mit Hilfe des Programmes &amp;#039;&amp;#039;GACUTIL.exe&amp;#039;&amp;#039; erfolgen. Auf die Verzeichnisse des GAC kann nur mit [[Administrator (Rolle)|Administratorrechten]] schreibend zugegriffen werden, sodass zur Installation von Dateien im GAC Administratorrechte erforderlich sind.&lt;br /&gt;
&lt;br /&gt;
== Implementierung des GAC unter Windows ==&lt;br /&gt;
[[Datei:Global Assembly Cache Viewer und Dateisystem.png|mini|Ansicht des GAC in der Explorer-Erweiterung und im tatsächlichen Dateisystem]]&lt;br /&gt;
&lt;br /&gt;
=== Dateisystem ===&lt;br /&gt;
Bis zur .NET Version 2.0 werden die gemeinsam genutzten Assemblies in einem speziellen [[Verzeichnisstruktur|Verzeichnis]] (&amp;lt;code&amp;gt;%SystemRoot%\assembly&amp;lt;/code&amp;gt;) installiert und verwaltet. Ab .NET Version 3.0 wird das Verzeichnis &amp;lt;code&amp;gt;%SystemRoot%\Microsoft.NET\assembly&amp;lt;/code&amp;gt; verwendet. Dieses enthält weitere Unterverzeichnisse für die jeweilige Prozessorarchitektur (z.&amp;amp;nbsp;B. &amp;#039;&amp;#039;GAC&amp;#039;&amp;#039;, &amp;#039;&amp;#039;GAC_32&amp;#039;&amp;#039;, &amp;#039;&amp;#039;GAC_64&amp;#039;&amp;#039;, &amp;#039;&amp;#039;GAC_MSIL&amp;#039;&amp;#039;) und die eigentlichen Assembly-Namen. Die Verzeichnisse mit den Assembly-Namen enthalten Unterverzeichnisse mit der Assemblyversion und dem öffentlichen Schlüssel. Der Zugriff auf die passende Assemblyversion ist also über einen Verzeichnisbaum möglich.&lt;br /&gt;
&lt;br /&gt;
=== Explorer-Erweiterung ===&lt;br /&gt;
Der [[Windows-Explorer]] verfügt über ein spezielles Interface zur Anzeige von Assemblies, den &amp;#039;&amp;#039;Assembly Cache Viewer&amp;#039;&amp;#039;. Beim Ansteuern des &amp;lt;code&amp;gt;%SystemRoot%\assembly&amp;lt;/code&amp;gt; Verzeichnisses werden dem Benutzer alle installierten Assemblies mit Version, Kultur, Schlüsseltoken und Prozessorarchitektur angezeigt. Das Interface erlaubt auch eine Installation per [[Drag and Drop]]. Diese Interface funktioniert jedoch nur bis zur .NET Version 2.0.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://msdn.microsoft.com/de-de/library/yf1d93sz.aspx Globaler Assemblycache] im [[MSDN]]&lt;br /&gt;
* [http://msdn.microsoft.com/de-de/library/ex0ss12c.aspx Hinweise zum Global Assembly Cache-Tool (Gacutil.exe)] im [[MSDN]]&lt;br /&gt;
* {{Webarchiv|url=http://www.codeproject.com/dotnet/demystifygac.asp|wayback=20081010|text=Details rund um den GAC}} (englisch)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:.NET]]&lt;/div&gt;</summary>
		<author><name>imported&gt;WikiuUser.elefant</name></author>
	</entry>
</feed>