次の方法で共有


-addmodule

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

構文

-addmodule:fileList  

引数

fileList
必須です。 メタデータは含まれるが、アセンブリ マニフェストは含まれないファイルのコンマ区切りのリスト。 ファイル名に空白が含まれる場合は、名前を二重引用符 ("") で囲みます。

Remarks

fileList パラメーターで指定するファイルは、-target:module オプションを使用して作成するか、-target:module と同等の別のコンパイラを使用して作成する必要があります。

-addmodule で追加したモジュールはすべて、実行時に出力ファイルと同じディレクトリに置かれている必要があります。 つまり、コンパイル時には任意のディレクトリからモジュールを指定できますが、実行時にはアプリケーション ディレクトリにこのモジュールが置かれている必要があります。 そうでない場合、TypeLoadException エラーが発生します。

-addmodule-target:module 以外の -target (Visual Basic) オプションを (暗黙的または明示的に) 指定すると、-addmodule に渡すファイルはプロジェクトのアセンブリの一部になります。 -addmodule で追加された 1 つ以上のファイルを含む出力ファイルを実行するには、アセンブリが必要です。

アセンブリが含まれるファイルからメタデータをインポートするには、-reference (Visual Basic) を使用します。

Note

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

関連項目