/addmodule
更新 : 2007 年 11 月
指定ファイルからのすべての型情報をコンパイル中のプロジェクトで使用できるようにします。
/addmodule:fileList
引数
- fileList
必ず指定します。メタデータは含まれるが、アセンブリ マニフェストは含まれないファイルの、コンマ区切りのリストです。空白を含むファイル名は、引用符 (" ") で囲みます。
解説
fileList パラメータで表示されるファイルは、/target:module オプション (または他のコンパイラで /target:module に相当するオプション) を指定して作成する必要があります。
/addmodule を使用して追加されたすべてのモジュールは、実行時に出力ファイルと同じディレクトリに配置されている必要があります。つまり、コンパイル時にはどのディレクトリのモジュールでも指定できますが、実行時にはモジュールをアプリケーション ディレクトリに置く必要があります。アプリケーション ディレクトリにモジュールがないと、TypeLoadException エラーが発生します。
/target:module 以外の /target (Visual Basic) オプションを /addmodule と共に暗黙的または明示的に指定すると、/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 が出力されます。