Freigeben über


-addmodule

Bewirkt, dass der Compiler alle Typinformationen aus den angegebenen Dateien für das Projekt verfügbar macht, das Sie gerade kompilieren.

Syntax

-addmodule:fileList  

Argumente

fileList
Erforderlich. Durch Trennzeichen getrennte Liste von Dateien, die Metadaten enthalten, aber keine Assemblymanifeste enthalten. Dateinamen, die Leerzeichen enthalten, sollten von Anführungszeichen (" ") umgeben sein.

Bemerkungen

Die durch den fileList Parameter aufgelisteten Dateien müssen mit der -target:module Option oder mit dem entsprechenden Compiler -target:moduleerstellt werden.

Alle Module, die -addmodule hinzugefügt wurden, müssen sich im selben Verzeichnis wie die Ausgabedatei zur Laufzeit befinden. Das heißt, Sie können ein Modul in einem beliebigen Verzeichnis zur Kompilierungszeit angeben, aber das Modul muss sich zur Laufzeit im Anwendungsverzeichnis befinden. Wenn dies nicht der Fehler ist, wird ein TypeLoadException Fehler angezeigt.

Wenn Sie eine andere Option als visual Basic ( implizit oder explizit) -target:module-addmoduleangeben, werden die übergebenen Dateien -addmodule Teil der Assembly des Projekts. Eine Assembly ist erforderlich, um eine Ausgabedatei auszuführen, die mindestens eine Datei enthält, die hinzugefügt -addmodulewurde.

Verwenden Sie "-reference" (Visual Basic), um Metadaten aus einer Datei zu importieren, die eine Assembly enthält.

Hinweis

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

Beispiel

Der folgende Code erstellt ein Modul.

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

Public Class TestClass
    Public i As Integer
End Class

Der folgende Code importiert die Typen des Moduls.

' 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 ausgeführt werden t1, wird sie ausgegeben 802.

Siehe auch