次の方法で共有


/addmodule

指定ファイルからのすべての型情報をコンパイル中のプロジェクトで使用できるようにします。

/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 が出力されます。

参照

関連項目

/target (Visual Basic)

/reference (Visual Basic)

コンパイル コマンド ラインのサンプル (Visual Basic)

その他の技術情報

Visual Basic のコマンド ライン コンパイラ