2008-10-03 7 views
6

Hat jemand eine gute Ressource für DLLs und wie sie in Visual Studio verwendet/generiert werden? Ein paar Fragen, die ich bin ziemlich speziell verschwommen auf sind:Dlls und ihre Funktionsweise in Visual Studio

  • Wie Refresh-Dateien arbeiten
  • Wie DLL-Versionsnummern generiert werden
  • Der Unterschied zwischen einer Referenz von Projekt vs-Browsing für die spezifische dll Zugabe

Alle anderen Tipps sind ebenfalls willkommen.

Antwort

5

Siehe die Frage auf DLL information für etwas Hintergrund.

Versionsnummern für nicht verwaltete DLLs werden in der RC-Datei der DLL gespeichert, genau wie für eine Exe. Für verwaltete DLLs ich glaube, es nutzt AssemblyFileInfo Attribut, in der Regel in AssemblyInfo.cs für ein Visual Studio generiert Projekt:

[assembly: AssemblyFileVersion("1.0.0.0")] 

Wenn Sie den Verweis von Projekt hinzufügen dann VS Lage sein, den richtigen Geschmack (Debug/Release zu kopieren) der referenzierten Assembly auf Ihr Ausgabeverzeichnis. Es kann diese Informationen auch verwenden, um implizit eine Abhängigkeit zwischen den Projekten hinzuzufügen, sodass sie dann in der richtigen Reihenfolge erstellt wird.

10

.NET DLL

Der allgemeine Begriff für einen .NET-DLL eine Baugruppe ist. Sie sind eine einzelne atomare Bereitstellungseinheit und bestehen aus einem oder mehreren CLR-Modulen (für die meisten Entwickler normalerweise nur eine, sofern sie nicht Compiler-Ausgabe aus zwei oder mehr Sprachen kombinieren). Assemblys enthalten sowohl CIL-Code als auch CLR-Metadaten wie das Assemblymanifest.

.refresh Dateien

.refresh Dateien sind einfach Textdateien, die VS sagen, wo für den Neubau der referenzierten DLL zu überprüfen. Sie werden in dateibasierten Webprojekten verwendet, in denen keine Projektdatei zum Speichern dieser Informationen vorhanden ist.

Versionsnummern

.NET Assembly Versionsnummern werden durch eine Anordnung scoped Attribut Assembly erzeugt, die in der Regel aus in einer Quelldatei mit dem Namen ‚AssemblyInfo.cs‘ (zu finden unter einem Projektordner namens ‚Eigenschaften‘ zu finden ist Ab VS2005). Die Versionsnummern sind aus major.minor.build.revision besteht beispiels -

[assembly: Assembly ("1.0.0.0")]

Assembly als Teil einer Baugruppe, die Identität verwendet wird (dh in ihrer starken Name) und spielt eine wichtige Rolle im Bindungsprozess und während der Versionspolitikentscheidungen.

Zum Beispiel, wenn ich zwei Assemblys mit dem gleichen Namen in der GAC hatte, würde das Attribut AssemblyVersion sie für die Zwecke des Ladens einer bestimmten Version der Assembly unterscheiden.

Assemblynummer kann manuell fixiert und inkrementiert werden oder man kann der Compiler erlauben, die Aufbau und Revisionsnummern für Sie zu erzeugen, indem festgelegt wird:

[assembly: Assembly ("1,0.. * „)] - erzeugt aufzubauen und Revisionsnummer
[assembly: Assembly (“ 1.0.0 * „)] - erzeugt Revisionsnummer

Wenn das Attribut Assembly die Versionsnummer Standard dann auf‚0.0 nicht vorhanden ist. 0.0' .

der Wert des Assembly Attribut Teil einer Baugruppe Manifest, das Assemblyattributwert nicht.

das Assembly Attribut wird verwendet, um einbetten eine Win32-Dateiversion in der DLL. Wenn dies nicht wird, ist Dann wird AssemblyVersion verwendet, es hat keinen Einfluss darauf, wie .NET als sembly loader/resolver wählt aus, welche Version einer Assembly geladen werden soll.

Projektreferenzen vs Browsing Für DLL

Wenn Sie das Hinzufügen eines Projekt verweisen bedeutet dies, dass das referenzierte Projekt Teil Ihrer Lösung sein wird. Dies erleichtert das Debugging, da Sie direkt in den Code Ihres referenzierten Projekts einsteigen können. Wenn Sie nur eine DLL-Referenz hinzufügen, haben Sie nicht die Vorteile, dass das Projekt Teil der Lösung ist und Sie in der Lage sind, in den Code innerhalb der Lösung einzusteigen.

Verwandte Themen