2009-08-03 5 views
2

Gibt es eine bevorzugte Möglichkeit, Core-.NET-Framework-Assemblies zu identifizieren? d.h. asm, die Teil des Frameworks sind?So identifizieren Sie zentrale .NET Framework-Assemblys

Dies ist für eine Anwendung eine automatische Aktualisierungsfunktion, die

1) in einer Baugruppe nimmt prüft mit ASP.NET Upload

2) es Montage

3) verweist ist gewährleistet, sie verfügbar sind Einsatz zu

4) sie nach Bedarf auf Basis von auth/Autorisierung gezogen sind usw. usw.

Teil 3 ist, wo es gehen würde od um zu überprüfen, ob sie Teil des Kern-Framework sind

+0

Sie bitte erarbeiten konnte. Welcher Rahmen wäre für Anfänger geeignet? –

+0

Ich könnte mir vorstellen, dass er über das .NET-Framework spricht, aber vielleicht nicht. –

+0

hoffentlich macht das oben klar – Kumar

Antwort

4

Baugruppen haben Attribute, die Sie mit Reflektion untersuchen können: durch diesen Anruf im Debugger zurückgegeben

object[] attribs = assembly.GetCustomAttributes(); 

Sie an den Objekten einen Blick darauf werfen konnte, und sehen, ob es gemeinsam über die Baugruppen, die Sie kategorisieren möchten .

Edit: Und - was für eine Überraschung! - Jon Skeet hat bereits an answer to a similar-but-not-identical question using this technique gepostet. Sollte auch für dich arbeiten.

+0

sieht interessant aus, aber ich würde denken, dass es vorzuziehen wäre, eine Liste der öffentlichen Schlüssel zu verwenden, da jemand die Microsoft-Zeichenfolge durch Unterlassung oder Kommission einfügen kann, wie sie sagen – Kumar

+0

Überprüfen Sie den Link zu Jon Antwort - er schlägt vor, es zu versuchen das auch. –

+0

Danke, ich habe es gerade fertig gelesen, sieht so aus, als ob es die einzige Möglichkeit wäre, zu gehen – Kumar

1

Sie können überprüfen, die Eigenschaft Assembly.GlobalAssemblyCache zu sehen, ob es in der GAC ist, aber ich denke, dass das ist am nächsten, ohne Microsoft Namen von der Montagefirma zu parsen.

+0

da benutzerdefinierte dll's in die gac gehen kann, das ist kein zuverlässiger anzeiger, wenn nichts anderes dann wird der microsoft name von der asm co parse. – Kumar

1

Hier ist eine Liste auf dem Standard ECMA basiert:

http://en.wikipedia.org/wiki/Base_Class_Library

+0

Gute Verbindung jedoch scheint es keine aktuelle oder vollständige Liste zu sein z.B. system.data.datasextensions system.data.datavisualisierung usw. In jedem Fall würde ich denken, es wäre vorzuziehen, eine Übereinstimmung zu machen, sagen Sie die publicKey statt, die weit weniger als die Namespaces oder Namen selbst wäre – Kumar

+0

Gut Punkt. Ich bin nur froh zu sehen, dass es einen richtigen Namen für "die Kern-Framework-Assemblies" gibt: BCL oder Base Class Library. –

Verwandte Themen