Heruntergeladene Assemblies entsperren

Ein Sicherheitsfeature von Windows ist für Entwickler besonders mühsam: Die Blockierung von aus dem Internet geladenen .Net-Assemblies. Versucht man so eine *.dll in einem Visual Studio Projekt zu verwenden trifft man auf diese Fehlermeldung:

Error 172 Could not load the assembly file://**/*.dll. This assembly may have been downloaded from the Web. If an assembly has been downloaded from the Web, it is flagged by Windows as being a Web file, even if it resides on the local computer. This may prevent it from being used in your project. You can change this designation by changing the file properties. Only unblock assemblies that you trust. See http://go.microsoft.com/fwlink/?LinkId=179545 for more information.

 

Da sich der Entwickler ein wenig Zeit für eine sinnvolle Fehlermeldung genommen hat findet man im MSDN eine entsprechende Lösung. Für einzelne Dateien genügt es diese im Explorer zu öffnen und mittels Rechtsklick den Eigenschaften-Dialog zu öffnen. Dort wird einem der Zulassen-Knopf prominent angezeigt:

Datei von fremden Computern zulassen

Diese Lösung dürfte den meisten bekannt sein. So lange man nur wenige Dateien entsperren muss kommt man damit auch gut zurecht. Hat man allerdings ein Projekt mit unzähligen Assemblies, die noch für alle möglichen Windows-Plattformen in Unterprojekte gegliedert sind, braucht es etwas Besseres.

 

Streams

Um Dateien massenhaft und rekursiv über verschachtelte Ordner zu entsperren empfiehlt Microsoft das Tool „Streams“ von Sysinternals. Auch wenn dies mittlerweile in die Jahre gekommen ist macht es seinen Job noch immer zuverlässig.

Nach dem herunterladen und installieren steht einem Streams als Konsolenanwendung zur Verfügung. Startet man das Tool ohne Parameter zeigt es einem die möglichen Optionen an:

C:\>D:\Pfad\zu\Streams\streams.exe
Streams v1.56 - Enumerate alternate NTFS data streams
Copyright (C) 1999-2007 Mark Russinovich
Sysinternals - www.sysinternals.com

usage: D:\Pfad\zu\Streams\streams.exe [-s] [-d] <file or directory>
-s     Recurse subdirectories
-d     Delete streams

Um den Ordner _DEV rekursiv zu entsperren genügt dieser Aufruf:

C:\>D:\Pfad\zu\Streams\streams.exe –s –d _DEV

 

Fazit

Ein an sich guter Schutz für Gelegenheitsanwender ist für Entwickler in der täglichen Arbeit ein Hindernis. Je nach Projekt wird man sehr häufig Dateien aus dem Internet herunterladen und jedes Assembly von Hand entsperren ist auf die Dauer nicht nur mühsam, sondern braucht auch viel Zeit. Mit einem Werkzeug wie Streams lässt sich dieses Problem aber glücklicherweise sehr einfach lösen.