コンパイラ出力の形式を指定します。
構文
-target:{exe | library | module | winexe | appcontainerexe | winmdobj}
注釈
次の表は、 -target
オプションの効果をまとめたものです。
オプション | 動作 |
---|---|
-target:exe |
コンパイラに実行可能コンソール アプリケーションを作成させます。 これは、 -target オプションが指定されていない場合の既定のオプションです。 実行可能ファイルは、.exe 拡張子で作成されます。-out オプションで特に指定しない限り、出力ファイル名は、Sub Main プロシージャを含む入力ファイルの名前を受け取ります。.exe ファイルにコンパイルされるソース コード ファイルには、1 つの Sub Main プロシージャのみが必要です。
-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 プロシージャを含む入力ファイルの名前を受け取ります。.exe ファイルにコンパイルされるソース コード ファイルには、1 つの Sub Main プロシージャのみが必要です。 コードに Sub Main プロシージャを持つ複数のクラスがある場合は、 -main コンパイラ オプションを使用して、 Sub Main プロシージャを含むクラスを指定します |
-target:appcontainerexe |
コンパイラが、アプリ コンテナーで実行する必要がある実行可能な Windows ベースのアプリケーションを作成します。 この設定は、Windows 8.x ストア アプリケーションに使用するように設計されています。 appcontainerexe 設定は、ポータブル実行可能ファイルの特性フィールドに少し設定します。 このビットは、アプリコンテナーでアプリを実行する必要があることを示します。 このビットを設定すると、 CreateProcess メソッドがアプリ コンテナーの外部でアプリケーションを起動しようとすると、エラーが発生します。 このビット設定とは別 に、-target:appcontainerexe は -target:winexe に相当します。実行可能ファイルは、.exe 拡張子で作成されます。 -out オプションを使用して特に指定しない限り、出力ファイル名は、Sub Main プロシージャを含む入力ファイルの名前を受け取ります。.exe ファイルにコンパイルされるソース コード ファイルには、1 つの Sub Main プロシージャのみが必要です。
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 を設定するには
ソリューション エクスプローラーでプロジェクトを選択します。 [プロジェクト] メニューの [プロパティ] をクリックします。
[ アプリケーション ] タブをクリックします。
[ アプリケーションの種類 ] ボックスの値を変更します。
例
次のコードは、 in.vb
をコンパイルし、 in.dll
を作成します。
vbc -target:library in.vb
こちらも参照ください
.NET