Beste Weg, um zu erkennen, ob WIF-Laufzeitumgebung installiert ist
Ein paar Seiten in meinem ASP.Net app eine direkte Verbindung zu einem anderen Dienst mit WIF. WIF ist gerade auf dem Vormarsch hier, und während es installiert ist, auf dem Test-und Produktions-Server, jedes mal, wenn ein neuer Programmierer oder tester bekommt die Letzte und geschieht, zu treffen diese Seiten, ohne die WIF-Laufzeit installiert, auf dem eigenen Rechner hat, bekommt er einen YSOD und eine Fehlermeldung über nicht finden Microsoft.IdentityModel ... die Sie nicht einmal Lesen und stattdessen das Feuer aus einem IM-sagt mir meine app ist kaputt.
Ich würde wie zu erkennen, wenn sich die WIF-Laufzeitumgebung installiert ist, und zeigen ein jeder hilfreiche Fehlermeldung und der link zur download-Seite, wenn nicht. Ich will nicht zu überprüfen, die für eine bestimmte .dll-Pfad als dies ändern könnte... und es sind schon unterschiedliche Wege für die 3.5 und 4.0.
Gibt es eine beste Weg, um zu erkennen, ob die WIF-Runtime ist installiert?
(natürlich in eine Seite, die nicht auf es schon... das würde nicht korrekt anzeigen, ohne es installiert)
Bearbeiten
Sieht es aus wie WIF ist in der framework 4.5 so ein 3.5/4.0 spezifischen Ansatz wäre in Ordnung. Es wird nicht notwendig sein, um zukunftssicher sein.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde versuchen, das laden der Microsoft.IdentityModel.dll aus dem GAC in einem try/catch -block oder besser noch, einfach fangen der Ausnahme von Benutzern, ohne die WIF-Laufzeit sind derzeit immer und nur verwendet, dass zum umleiten der Benutzer auf einen bestimmten Fehler-Seite/Nachricht.
Beantworten Ihre genaue Frage - gibt es eine Möglichkeit zu erkennen, ob das die richtige WIF-Installations-Paket vorhanden ist: wenn Ihre Anwendung kann den Zugriff auf die registry (im nur-Lesen-Modus zumindest), ist es auch möglich zu prüfen, ob die Windows Identity Foundation Verwandte Elemente werden im SOFTWARE\Microsoft\Windows Identity Foundation (und die damit verbundenen Wow6432Node für 64-bit-Systeme).
Offizieller Kommentar von microsoft:
Referenz hier
Ging ich mit der registry check Vorschlag aus der Antwort oben, nach Prüfung einiger Installateure von Microsoft, um zu sehen, wie Sie erkannt hat, dass die Präsenz der WIF-Laufzeit, und das ist alles, was Sie tun.
Hier ist, was ich ging mit:
Dann in die basepage oder masterpage überprüfe ich den Wert, und lassen den Benutzer wissen. Die eigentliche Prüfung erfolgt nur einmal im Typ-Initialisierung, danach ist es einfach nur statische Eigenschaften zugreifen.
Wir haben keine Lust auf web-Bereitstellungs-Pakete für Entwickler-Maschinen, es ist einfach zu bekommen aus der Quelle und gehen. Dies ermöglicht es Entwicklern, ohne diese Bibliothek, um nicht Zeit verschwenden, wenn Sie Begegnung ein YSOD und einem obskuren laden der assembly Fehler.
Danke für die Vorschläge.