-addmodule

Entraîne la mise à disposition par le compilateur de toutes les informations de type à partir du ou des fichiers spécifiés, pour le projet en cours de compilation.

Syntaxe

-addmodule:fileList  

Arguments

fileList
Obligatoire. Liste délimitée par des virgules de fichiers qui contiennent des métadonnées, mais qui ne contiennent pas de manifestes de l’assembly. Les noms de fichiers contenant des espaces doivent être entourés de guillemets ( » « ).

Notes

Les fichiers répertoriés par le paramètre fileList doivent être créés avec l’option -target:module ou avec l’équivalent d’un autre compilateur à -target:module.

Tous les modules ajoutés avec -addmodule doivent se trouver dans le même répertoire que le fichier de sortie au moment de l’exécution. Vous pouvez donc spécifier un module dans n’importe quel répertoire au moment de la compilation, mais le module doit se trouver dans le répertoire de l’application au moment de l’exécution. Si ce n’est pas le cas, vous obtenez une erreur TypeLoadException.

Si vous spécifiez (implicitement ou explicitement) l’option n’importe quelle cible (Visual Basic) autre que -target:module avec -addmodule, les fichiers que vous passez à -addmodule font partie de l’assembly du projet. Un assembly est nécessaire pour exécuter un fichier de sortie auquel un ou plusieurs fichiers sont ajoutés avec -addmodule.

Utilisez -reference (Visual Basic) pour importer des métadonnées à partir d’un fichier qui contient un assembly.

Notes

L’option -addmodule n’est pas disponible à partir de l’environnement de développement Visual Studio. Elle est disponible uniquement lors de la compilation à partir de la ligne de commande.

Exemple

Le code suivant crée un module.

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

Public Class TestClass
    Public i As Integer
End Class

Le code suivant importe les types du module.

' 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

Lorsque vous exécutez t1, il génère 802.

Voir aussi