code it

Martins Tech Blog

Assembly aus GAC wiederherstellen

Im Leben eines Microsoft-Entwicklers kommt es hin und wieder vor, dass man DLLs aus dem GAC wiederherstellen muss. Das Standardverhalten in der Windows-GUI lässt aber nur ein komplettes Deinstallieren (=Entfernen) aus dem Global Assembly Cache zu und damit wäre die DLL für immer verloren.

Hier kommt nun die gute alte Eingabeaufforderung zum Zuge. Wenn man damit in den GAC navigiert, bekommt man eine andere Ansicht als in der Windows-Oberfläche. Das erklärt auch, weshalb der Explorer mit einem Hinzufügen mittels Strg+C und Strg+V etwas überfordert ist und das Ganze schlichtweg ignoriert.

Von hier aus kann man sich nun weiter in die Tiefen des GAC begeben. Normale MSIL-Assemblies findet man in GAC_MSIL. Hier ist für jede Assembly ein Ordner angelegt, der wiederum einen oder mehrere Ordner mit Versionskennzeichnungen. Hier findet man dann die installierte DLL und kann diese z.B. mit dem Copy-Befehl an eine andere Stelle kopieren.

Einen interessanten Nebeneffekt kann man nun erzielen, wenn man in der Eingabeaufforderung einen solchen Ordner geöffnet hat und dann über die Windows-Oberfläche die DLL aus dem GAC deinstalliert und wieder hinzufügen möchte. Dann schlägt das Hinzufügen mit der Meldung "Das Erstellen von <DLL> oder das Erstellen einer Schattenkopie ist nicht möglich, wenn diese Datei bereits vorhanden ist."

 

In diesem Fall kann man das Problem mit dem Schließen der Eingabeaufforderung beheben.

Zeilenumbuch im Text eines ASP Label

Bereits mehrfach hatte ich das das Problem, dass ich Labels erzeugen wollte in denen Zeilenumbrüche vorkommen. Leider wurden sämtliche Versuche \n oder die NewLine-Spezifikation aus Environment zu verwenden komplett ignoriert.

Heute bin ich dann über die Lösung des Problems gestoßen: Man muss einfach <br/> statt \n verwenden und schon geht es. Vermutlich wird durch \n einfach der HTML-Quelltext umgebrochen und das wird natürlich als Leerzeichen dargestellt.