-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
.