Freigeben über


-addmodule

Bewirkt, dass der Compiler dem Projekt, das Sie aktuell kompilieren, sämtliche Typinformationen aus den angegebenen Dateien bereitstellt.

Syntax

-addmodule:fileList  

Argumente

fileList
Erforderlich. Eine durch Trennzeichen getrennte Liste mit Dateien, die Metadaten enthalten, jedoch keine Assemblymanifeste. Dateinamen, die Leerzeichen enthalten, müssen in Anführungszeichen ("") eingeschlossen werden.

Hinweise

Die durch den fileList-Parameter aufgelisteten Dateien müssen mit der Option -target:module oder einer entsprechenden Option eines anderen Compilers erstellt werden.

Alle mit -addmodule hinzugefügten Module müssen sich zur Laufzeit im selben Verzeichnis wie die Ausgabedatei befinden. Das bedeutet, dass Sie zur Kompilierzeit ein Modul in einem beliebigen Verzeichnis angeben können, sich das Modul zur Laufzeit jedoch im Anwendungsverzeichnis befinden muss. Andernfalls wird ein TypeLoadException-Fehler angezeigt.

Wenn Sie mit -addmodule (implizit oder explizit) eine andere -target (Visual Basic)-Option als -target:module angeben, werden die Dateien, die Sie an -addmodule übergeben, Teil der Assembly des Projekts. Eine Assembly ist zum Ausführen einer Ausgabedatei erforderlich, die mindestens eine mit -addmodule hinzugefügte Datei enthält.

Verwenden Sie zum Importieren von Metadaten aus einer Datei, die eine Assembly enthält, die Option -reference (Visual Basic).

Hinweis

Die Option -addmodule steht nicht in der Visual Studio-Entwicklungsumgebung zur Verfügung. Sie ist nur verfügbar, wenn Sie über die Befehlszeile kompilieren.

Beispiel

Mit dem folgenden Code wird ein Modul erstellt:

' t1.vb
' Compile with vbc /target:module t1.vb.
' Outputs t1.netmodule.

Public Class TestClass
    Public i As Integer
End Class

Mit dem folgenden Code werden die Modultypen importiert:

' t2.vb
' Compile with vbc /addmodule:t1.netmodule t2.vb.
Option Strict Off

Namespace NetmoduleTest
    Module Module1
        Sub Main()
            Dim x As TestClass
            x = New TestClass
            x.i = 802
            System.Console.WriteLine(x.i)
        End Sub
    End Module
End Namespace

Wenn Sie t1 ausführen, wird 802 ausgegeben.

Siehe auch