-target (Visual Basic)

コンパイラ出力の形式を指定します。

構文

-target:{exe | library | module | winexe | appcontainerexe | winmdobj}

Remarks

次の表は、-target オプションの効果をまとめたものです。

オプション Behavior
-target:exe 実行可能なコンソール アプリケーションがコンパイラによって作成されます。

これは、-target オプションが指定されていない場合の既定のオプションです。 実行可能ファイルは、.exe 拡張子を使用して作成されます。

-out オプションで特に指定しない限り、出力ファイル名は Sub Main プロシージャを含む入力ファイルの名前となります。

Sub Main プロシージャは、.exe ファイルにコンパイルされるソースコード ファイル内に 1 つだけ必要になります。 -main コンパイラ オプションを使用して、Sub Main プロシージャを含むクラスを指定します。
-target:library ダイナミックリンク ライブラリ (DLL) がコンパイラによって作成されます。

ダイナミックリンク ライブラリ ファイルは、.dll 拡張子を使用して作成されます。

-out オプションで特に指定しない限り、出力ファイル名は最初の入力ファイルの名前となります。

DLL をビルドする場合、Sub Main プロシージャは必要ありません。
-target:module アセンブリに追加できるモジュールがコンパイラによって生成されます。

出力ファイルは、.netmodule の拡張子を使用して作成されます。

.NET 共通言語ランタイムでは、アセンブリのないファイルを読み込むことはできません。 しかし、このようなファイルは、-reference を使用して、アセンブリのアセンブリ マニフェストに組み込むことができます。

あるモジュールのコードで別のモジュールの内部型を参照する場合は、-reference を使用して、両方のモジュールをアセンブリ マニフェストに組み込む必要があります。

-addmodule オプションでは、モジュールからメタデータをインポートします。
-target:winexe 実行可能な Windows ベースのアプリケーションがコンパイラによって作成されます。

実行可能ファイルは、.exe 拡張子を使用して作成されます。 Windows ベースのアプリケーションは、.NET Framework クラス ライブラリまたは Windows API のユーザー インターフェイスを提供するものです。

-out オプションで特に指定しない限り、出力ファイル名は Sub Main プロシージャを含む入力ファイルの名前となります。

Sub Main プロシージャは、.exe ファイルにコンパイルされるソースコード ファイル内に 1 つだけ必要になります。 コードに Sub Main プロシージャを持つクラスが複数ある場合は、-main コンパイラ オプションを使用して、Sub Main プロシージャを含むクラスを指定します。
-target:appcontainerexe アプリ コンテナーで実行する必要がある実行可能な Windows ベースのアプリケーションが、コンパイラによって作成されます。 この設定は、Windows 8.x ストア アプリケーションで使用するように設計されています。

appcontainerexe 設定では、移植可能な実行可能ファイルの Characteristics フィールドにビットを設定します。 このビットは、アプリ コンテナーでアプリが実行される必要があることを示します。 このビットが設定されている場合、CreateProcess メソッドでアプリケーション コンテナー外のアプリケーションを起動しようとすると、エラーが発生します。 このビット設定を除けば、 -target:appcontainerexe-target:winexe と同じです。

実行可能ファイルは、.exe 拡張子を使用して作成されます。

-out オプションを使用して特に指定しない限り、出力ファイル名は Sub Main プロシージャを含む入力ファイルの名前となります。

Sub Main プロシージャは、.exe ファイルにコンパイルされるソースコード ファイル内に 1 つだけ必要になります。 コードに Sub Main プロシージャを持つクラスが複数含まれている場合は、-main コンパイラ オプションを使用して、Sub Main プロシージャを含むクラスを指定します。
-target:winmdobj Windows ランタイム バイナリ (.winmd) ファイルに変換できる中間ファイルが、コンパイラによって作成されます。 .winmd ファイルは、マネージド言語プログラムだけでなく、JavaScript および C++ プログラムでも使用できます。

中間ファイルは、.winmdobj 拡張子を使用して作成されます。

-out オプションを使用して特に指定しない限り、出力ファイル名は最初の入力ファイルの名前になります。 Sub Main プロシージャは必要ありません。

.winmdobj ファイルは、Windows メタデータ (WinMD) ファイルを生成するために WinMDExp エクスポート ツールの入力として使用されるように設計されています。 WinMD ファイルには、.winmd 拡張子が付いており、元のライブラリのコードと、JavaScript、C++、および Windows ランタイムで使用される WinMD 定義の両方が含まれています。

-target:module を指定しない限り、-target を使用すると、.NET Framework のアセンブリ マニフェストが出力ファイルに追加されます。

Vbc.exe の各インスタンスで生成される出力ファイルは、多くても 1 つです。 -out または -target などのコンパイラ オプションを複数回指定した場合、コンパイラで処理される最後のものが有効になります。 コンパイルにおけるすべてのファイルに関する情報は、マニフェストに追加されます。 -target:module で作成されたもの以外のすべての出力ファイルには、マニフェストのアセンブリ メタデータが含まれます。 Ildasm.exe (IL 逆アセンブラー) を使用して、出力ファイル内のメタデータを表示します。

-target の省略形は -t です。

Visual Studio IDE で -target を設定するには

  1. ソリューション エクスプローラーでプロジェクトを選択します。 [プロジェクト] メニューの [プロパティ] をクリックします。

  2. [アプリケーション] タブをクリックします。

  3. [アプリケーションの種類] ボックスで値を変更します。

次のコードでは、in.vb がコンパイルされ、in.dll が作成されます。

vbc -target:library in.vb

関連項目