2012-08-27 11 views
7

Gebäude ist die Sequenz aus Kompilieren und Verknüpfen..NET-Bauprozess und Verknüpfung

In .NET ist der Quellcode in die Assembly kompiliert, die Common Intermediate Language und Typ Info enthält. Zur Laufzeit konvertiert der JIT-Compiler den CIL-Code in nativen Code.

Ich verstehe nicht, in .NET, wie und wann die Verknüpfung stattfindet.

Kann jemand bitte den Prozess erklären?

Vielen Dank im Voraus

+0

Was genau meinen Sie mit * linking *? –

+0

@SergRogovtsev [Linker (Computing)] (http://en.wikipedia.org/wiki/Linker_%28computing%29) – Nasreddine

+0

@Nacerddine Sind Sie der Autor dieser Frage? –

Antwort

6

Es gibt keine Verknüpfung in Bezug auf C++.

Ich meine, es gibt keine dazwischen liegenden "obj"/"lib" -Dateien, die später verteilt und mit anderen "obj" -Dateien verknüpft werden können. Der Verweis auf eine Assembly hat immer dynamisches Verhalten (immer Dynamic-Link-Bibliothek), im Gegensatz zur statischen C++ - Verknüpfung.

Etwas wie Verknüpfung ist eine Erstellung von .netmodule. Sie können .NET-Quellcode mit Compiler in .netmodule anstelle von Assembly erstellen (sehen Sie here, besonders Abschnitt "Differences Between C# Compiler and C++ Compiler Output"), und später können Sie diese Module zu einer einzigen Baugruppe verknüpfen (siehe al.exe).

Aber das ist unübliche Praxis - die meisten Baugruppen enthält einzelnes Modul, und diese Arbeit (Quelle -> Modul -> Assembly) wurde von Compiler (z. B. csc.exe) hinter den Kulissen getan. Außerdem kann ich mich nicht daran erinnern, dass ein Produkt als Satz von .netmodule (nicht als Satz von Baugruppen) weiterverteilt wird.

+0

Vielen Dank für Ihre Antwort :) – ProgNet

+0

Gern geschehen. – Dennis

Verwandte Themen