コンパイラが、現在コンパイルしているプロジェクトで、指定したファイルのすべての型情報を使用できるようにします。
構文
-addmodule:fileList
論争
fileList
必須。 メタデータを含むがアセンブリ マニフェストを含まないファイルのコンマ区切りのリスト。 スペースを含むファイル名は、引用符 (" ") で囲む必要があります。
注釈
fileList
パラメーターによって一覧表示されるファイルは、-target:module
オプションを使用するか、別のコンパイラと同等の-target:module
で作成する必要があります。
-addmodule
で追加されるすべてのモジュールは、実行時に出力ファイルと同じディレクトリに存在する必要があります。 つまり、コンパイル時に任意のディレクトリにモジュールを指定できますが、モジュールは実行時にアプリケーション ディレクトリに存在する必要があります。 そうでない場合は、 TypeLoadException エラーが発生します。
-addmodule
で-target:module
以外の任意のターゲット (Visual Basic) オプションを (暗黙的または明示的に) 指定した場合、-addmodule
に渡すファイルはプロジェクトのアセンブリの一部になります。
-addmodule
で 1 つ以上のファイルが追加された出力ファイルを実行するには、アセンブリが必要です。
アセンブリを含むファイルからメタデータをインポートするには、 -reference (Visual Basic) を使用します。
注
-addmodule
オプションは、Visual Studio 開発環境内からは使用できません。コマンド ラインからコンパイルする場合にのみ使用できます。
例
次のコードでは、モジュールを作成します。
' t1.vb
' Compile with vbc /target:module t1.vb.
' Outputs t1.netmodule.
Public Class TestClass
Public i As Integer
End Class
次のコードは、モジュールの型をインポートします。
' 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
t1
を実行すると、802
出力されます。
こちらも参照ください
.NET