.Net Umgebung auf externer Festplatte?

Arndtinho

Erfahrenes Mitglied
Hallo,

normalerweise bin ich in der PHP-Welt "zu Hause". Derzeit arbeite ich aber an einem etwas größeren .Net-Projekt. Ich möchte nun alles was das Projekt betrifft auf eine externe Festplatte auslagern. Das betrifft nicht nur die Projektdateien, sondern auch die IDE, den MS SQL Server und das .NET-Framework. Ist dies möglich? Besonders beim Framework habe ich da Bedenken, da es ja scheinbar, egal welchen Installationspfad man angibt, auf die Systempartition installiert wird. Bin für jeden Tipp dankbar.

Viele Grüße
Arndtinho
 
Richtig, wird es.
Die vom .NET Framework mitgelieferten Assemblies werden zum einen in den GAC eingetragen. Dieser liegt im Windows-Verzeichnis. Zum anderen wird im Windows-Verzeichnis ein Verzeichnis angelegt, in dem der Compiler und andere Tools für .NET liegen, die zum Teil für die Laufzeit auch benötigt werden.

Die Installation von Visual Studio und SQL Server kannst du zwar auf einer anderen Partition machen. Beide installieren jedoch Komponenten, die auch wieder in den GAC eingetragen werden oder auch z.B. unter Gemeinsame Dateien abgelegt werden.
 
Kann man das irgendwie umgehen? Ich habe ja kein Problem damit, dass gewisse Teile auf der Systempartition benötigt werden, aber es sollte doch egal sein, wo das Framework liegt. Bei einer ersten Testinstallation musste ich auch verwundert feststellen, dass alle Versionen des Frameworks (bis 3.5) installiert werden, was ja auch unnötigen Plattenplatz beansprucht.

Güße
Arndtinho
 
Nein, es werden nur die Frameworks 2.0-3.5 installiert. Und es sind alle notwendig, sie bauen nämlich aufeinander auf. Der Großteil der Funktionen steckt im .Net 2.0 und ein paar Extras stecken eben zusätzlich in 3.0 und 3.5. Wenn du allerdings eine normale WinForms-Anwendung programmierst, werden eigentlich nur 2.0-Assemblies benutzt, auch wenn du das 3.5er installiert hast. Erst wenn du dann z. B. LINQ benutzt, kommt das 3.5er ins Spiel.
 
Und warum genau kann man das nicht umgehen? Das hat einen guten Grund:
Im GAC oder auch Global Assembly Cache werden Assemblies, die von mehreren Applikationen benötigt werden abgelegt. Da der GAC logisch aufgebaut ist, bietet er nicht nur die Möglichkeit, Assemblies global zur Verfügung zu stellen, sondern auch in unterschiedlichen Versionen. D.h. eine bestimmte Assembly xy.dll kann sowohl in der Verison 1.0, als auch 2.0 vorliegen. Die jeweiligen Anwendungen holen sich dann die Version, die sie benötigen. Hintergrund: DLL-Hell.
 
Zurück