-addmodule
Causes the compiler to make all type information from the specified file(s) available to the project you are currently compiling.
Syntax
-addmodule:fileList
Arguments
fileList
Required. Comma-delimited list of files that contain metadata but do not contain assembly manifests. File names containing spaces should be surrounded by quotation marks (" ").
Remarks
The files listed by the fileList
parameter must be created with the -target:module
option, or with another compiler's equivalent to -target:module
.
All modules added with -addmodule
must be in the same directory as the output file at run time. That is, you can specify a module in any directory at compile time, but the module must be in the application directory at run time. If it is not, you get a TypeLoadException error.
If you specify (implicitly or explicitly) any-target (Visual Basic) option other than -target:module
with -addmodule
, the files you pass to -addmodule
become part of the project's assembly. An assembly is required to run an output file that has one or more files added with -addmodule
.
Use -reference (Visual Basic) to import metadata from a file that contains an assembly.
Note
The -addmodule
option is not available from within the Visual Studio development environment; it is available only when compiling from the command line.
Example
The following code creates a module.
' t1.vb
' Compile with vbc /target:module t1.vb.
' Outputs t1.netmodule.
Public Class TestClass
Public i As Integer
End Class
The following code imports the module's types.
' 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
When you run t1
, it outputs 802
.