AL (アセンブリ リンカー) タスク

AL タスクは、Windows ソフトウェア開発キット (SDK) と共に配布されるツールである AL.exe をラップします。 アセンブリ リンカー ツールは、モジュールまたはリソース ファイルである 1 つ以上のファイルから、マニフェストを含むアセンブリを作成するために使われます。 これらの機能はコンパイラおよび開発環境で既に提供されていることがあるので、ほとんどの場合、このタスクを直接使う必要はありません。 アセンブリ リンカーは、混合言語の開発から生成されるものなど、複数のコンポーネント ファイルから 1 つのアセンブリを作成する必要がある開発者に適しています。 このタスクでは、複数のモジュールが 1 つのアセンブリ ファイルに結合されることはありません。生成されたアセンブリを正しく読み込むためには、やはり個々のモジュールを配布して使用できるようにする必要があります。 AL.exe について詳しくは、「Al.exe (アセンブリ リンカー)」をご覧ください。

パラメーター

AL タスクのパラメーターの説明を次の表に示します。

パラメーター 説明
AlgorithmID 省略可能な String 型のパラメーターです。

アセンブリ マニフェストを含むファイルを除き、マルチファイル アセンブリ内の全ファイルをハッシュするためのアルゴリズムを指定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /algid オプションのドキュメントをご覧ください。
BaseAddress 省略可能な String 型のパラメーターです。

実行時にユーザーのコンピューターに DLL を読み込む先のアドレスを指定します。 オペレーティング システムにプロセス空間内で DLL を再配置させる代わりに DLL のベース アドレスを指定しておくと、アプリケーションの読み込み速度が速くなります。 このパラメーターは /baseaddress に対応しています。
CompanyName 省略可能な String 型のパラメーターです。

アセンブリの Company フィールドに文字列を指定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /comp[any] オプションのドキュメントをご覧ください。
Configuration 省略可能な String 型のパラメーターです。

アセンブリの Configuration フィールドに文字列を指定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /config[uration] オプションのドキュメントをご覧ください。
Copyright 省略可能な String 型のパラメーターです。

アセンブリの Copyright フィールドに文字列を指定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /copy[right] オプションのドキュメントをご覧ください。
Culture 省略可能な String 型のパラメーターです。

アセンブリに関連付けるカルチャ文字列を指定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /c[ulture] オプションのドキュメントをご覧ください。
DelaySign 省略可能な Boolean 型のパラメーターです。

アセンブリに公開キーのみを置く場合は true、アセンブリを完全に署名する場合は false です。 詳しくは、「Al.exe (アセンブリ リンカー)」で /delay[sign] オプションのドキュメントをご覧ください。
Description 省略可能な String 型のパラメーターです。

アセンブリの Description フィールドに文字列を指定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /descr[iption] オプションのドキュメントをご覧ください。
EmbedResources 省略可能な ITaskItem[] 型のパラメーターです。

アセンブリ マニフェストを含むイメージに指定したリソースを埋め込みます。 このタスクは、リソース ファイルの内容をイメージにコピーします。 このパラメーターに渡すアイテムには、LogicalName および Access という名前の省略可能なメタデータを添付することができます。 LogicalName メタデータは、リソースの内部識別子を指定するために使われます。 リソースを他のアセンブリから見えないようにするには、Access メタデータを private に設定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /embed[resource] オプションのドキュメントをご覧ください。
EvidenceFile 省略可能な String 型のパラメーターです。

Security.Evidence というリソース名を持つアセンブリに、指定したファイルを埋め込みます。

通常のリソースに対して Security.Evidence を使うことはできません。 このパラメーターは、「Al.exe (アセンブリ リンカー)」の /e[vidence] オプションに対応します。
ExitCode 省略可能な Int32 型の読み取り専用出力パラメーターです。

実行されたコマンドによって提供される終了コードを指定します。
FileVersion 省略可能な String 型のパラメーターです。

アセンブリの File Version フィールドに文字列を指定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /fileversion オプションのドキュメントをご覧ください。
Flags 省略可能な String 型のパラメーターです。

アセンブリの Flags フィールドに値を指定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /flags オプションのドキュメントをご覧ください。
GenerateFullPaths 省略可能な Boolean 型のパラメーターです。

エラー メッセージで報告されるすべてのファイルについて絶対パスを使うよう、タスクに指定します。 このパラメーターは、「Al.exe (アセンブリ リンカー)」の /fullpaths オプションに対応します。
KeyContainer 省略可能な String 型のパラメーターです。

キー ペアを保持するコンテナーを指定します。 これにより、公開キーがアセンブリ マニフェストに挿入され、アセンブリに署名 (厳密な名前が指定) されます。 次に、タスクは最終的なアセンブリに秘密キーで署名します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /keyn[ame] オプションのドキュメントをご覧ください。
KeyFile 省略可能な String 型のパラメーターです。

アセンブリに署名するためのキー ペアまたは公開キーだけを含むファイルを指定します。 コンパイラは、アセンブリ マニフェストに公開キーを挿入し、最終的なアセンブリに秘密キーで署名します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /keyf[ile] オプションのドキュメントをご覧ください。
LinkResources 省略可能な ITaskItem[] 型のパラメーターです。

指定したリソース ファイルをアセンブリにリンクします。 リソースはアセンブリの一部になりますが、ファイルはコピーされません。 このパラメーターに渡すアイテムには、LogicalNameTarget、および Access という名前の省略可能なメタデータを添付することができます。 LogicalName メタデータは、リソースの内部識別子を指定するために使われます。 Target メタデータでは、タスクがファイルをコピーする先のパスとファイル名を指定できます。その後は、この新しいファイルがアセンブリにコンパイルされます。 リソースを他のアセンブリから見えないようにするには、Access メタデータを private に設定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /link[resource] オプションのドキュメントをご覧ください。
MainEntryPoint 省略可能な String 型のパラメーターです。

モジュールを実行可能ファイルに変換するときに、エントリ ポイントとして使うメソッドの完全修飾名 (class.method) を指定します。 このパラメーターは、「Al.exe (アセンブリ リンカー)」の /main オプションに対応します。
OutputAssembly 必須の ITaskItem 型の出力パラメーターです。

このタスクで生成されるファイルの名前を指定します。 このパラメーターは、「Al.exe (アセンブリ リンカー)」の /out オプションに対応します。
Platform 省略可能な String 型のパラメーターです。

このコードを実行できるプラットフォームを制限します。x86Itaniumx64、または anycpu のいずれかでなければなりません。 既定では、 anycpuです。 このパラメーターは、「Al.exe (アセンブリ リンカー)」の /platform オプションに対応します。
ProductName 省略可能な String 型のパラメーターです。

アセンブリの Product フィールドに文字列を指定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /prod[uct] オプションのドキュメントをご覧ください。
ProductVersion 省略可能な String 型のパラメーターです。

アセンブリの ProductVersion フィールドに文字列を指定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /productv[ersion] オプションのドキュメントをご覧ください。
ResponseFiles 省略可能な String[] 型のパラメーターです。

アセンブリ リンカーに渡す追加のオプションが含まれる応答ファイルを指定します。
SdkToolsPath 省略可能な String 型のパラメーターです。

resgen.exe などの SDK ツールのパスを指定します。
SourceModules 省略可能な ITaskItem[] 型のパラメーターです。

アセンブリにコンパイルする 1 つ以上のモジュール。 モジュールは生成されるアセンブリのマニフェストに列記され、アセンブリを読み込むにはモジュールを配布して使用できるようにする必要があります。 このパラメーターに渡すアイテムには、Target という名前の追加メタデータを指定できます。このメタデータでは、タスクがファイルをコピーする先のパスとファイル名を指定します。その後は、この新しいファイルがアセンブリにコンパイルされます。 詳しくは、「Al.exe (アセンブリ リンカー)」のドキュメントをご覧ください。 このパラメーターは、特定のスイッチを指定しないで Al.exe に渡されるモジュールのリストに対応します。
TargetType 省略可能な String 型のパラメーターです。

出力ファイルのファイル形式として、library (コード ライブラリ)、exe (コンソール アプリケーション)、または win (Windows ベースのアプリケーション) を指定します。 既定では、 libraryです。 このパラメーターは、「Al.exe (アセンブリ リンカー)」の /t[arget] オプションに対応します。
TemplateFile 省略可能な String 型のパラメーターです。

カルチャ フィールドを除く、すべてのアセンブリ メタデータの継承元であるアセンブリを指定します。 指定するアセンブリには厳密な名前が必要です。

TemplateFile パラメーターを指定して作成したアセンブリは、サテライト アセンブリになります。 このパラメーターは、「Al.exe (アセンブリ リンカー)」の /template オプションに対応します。
Timeout 省略可能な Int32 型のパラメーターです。

タスク実行を終了するまでの時間をミリ秒単位で指定します。 既定値は Int.MaxValue であり、タイムアウト期限がないことを示します。
Title 省略可能な String 型のパラメーターです。

アセンブリの Title フィールドに文字列を指定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /title オプションのドキュメントをご覧ください。
ToolPath 省略可能な String 型のパラメーターです。

タスクが基になる実行可能ファイル (Al.exe) を読み込む場所を指定します。 このパラメーターを指定しない場合、タスクでは、MSBuild を実行しているフレームワークのバージョンに対応する SDK インストール パスが使用されます。
Trademark 省略可能な String 型のパラメーターです。

アセンブリの Trademark フィールドに文字列を指定します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /trade[mark] オプションのドキュメントをご覧ください。
Version 省略可能な String 型のパラメーターです。

このアセンブリのバージョン情報を指定します。 文字列の形式は、major.minor.build.revision です。 既定値は 0 です。 詳しくは、「Al.exe (アセンブリ リンカー)」で /v[ersion] オプションのドキュメントをご覧ください。
Win32Icon 省略可能な String 型のパラメーターです。

.ico ファイルをアセンブリに挿入します。 この .ico ファイルは、エクスプローラーにおける出力ファイルの視覚的な表現を提供します。 このパラメーターは、「Al.exe (アセンブリ リンカー)」の /win32icon オプションに対応します。
Win32Resource 省略可能な String 型のパラメーターです。

Win32 リソース (.res ファイル) を出力ファイルに挿入します。 詳しくは、「Al.exe (アセンブリ リンカー)」で /win32res オプションのドキュメントをご覧ください。

ToolTaskExtension パラメーター

このタスクが ToolTaskExtension クラスを継承します。このクラスは ToolTask クラスから継承され、さらに、このクラス自体は Task から継承されます。 この継承チェーンにより、これらのクラスから派生したタスクにいくつかのパラメーターが追加されます。

基本クラスのパラメーターの説明を次の表に示します。

パラメーター 説明
EchoOff 省略可能な bool 型のパラメーターです。

true に設定すると、このタスクは /Qcmd.exe コマンド ラインに渡して、コマンド ラインが stdout にコピーされないようにします。
EnvironmentVariables 省略可能な String 型の配列パラメーターです。

セミコロンで区切られた環境変数定義の配列。 各定義では、環境変数の名前と値を等号で区切って指定する必要があります。 これらの変数は、標準の環境ブロックに加え (または標準の環境ブロックを選択的にオーバーライドして)、子の実行可能ファイルに渡されます。 たとえば、「 Variable1=Value1;Variable2=Value2 」のように入力します。
ExitCode 省略可能な Int32 型の読み取り専用出力パラメーターです。

実行したコマンドの終了コードを示します。 タスクがエラーを記録した一方で、プロセスの終了コードが 0 (成功) だった場合、これは -1 に設定されます。
LogStandardErrorAsError 省略可能な bool 型のパラメーターです。

true の場合、標準エラー ストリームで受け取ったすべてのメッセージがエラーとして記録されます。
StandardErrorImportance 省略可能な String 型のパラメーターです。

標準エラー ストリームのテキストを記録するときに使用する重要度です。
StandardOutputImportance 省略可能な String 型のパラメーターです。

標準出力ストリームのテキストを記録するときに使用する重要度です。
Timeout 省略可能な Int32 型のパラメーターです。

タスク実行を終了するまでの時間をミリ秒単位で指定します。 既定値は Int.MaxValue であり、タイムアウト期限がないことを示します。 タイムアウトはミリ秒単位です。
ToolExe 省略可能な string 型のパラメーターです。

プロジェクトで実装すると、ToolName をオーバーライドできます。 タスクでオーバーライドすると、ToolName を保持できます。
ToolPath 省略可能な string 型のパラメーターです。

タスクで基になる実行可能ファイルを読み込む場所を指定します。 このパラメーターを指定しない場合、タスクでは、MSBuild を実行しているフレームワークのバージョンに対応する SDK インストール パスが使用されます。
UseCommandProcessor 省略可能な bool 型のパラメーターです。

true に設定した場合、このタスクで直接コマンドを実行する代わりに、コマンド ラインのバッチ ファイルを作成し、そのファイルをコマンド プロセッサで実行します。
YieldDuringToolExecution 省略可能な bool 型のパラメーターです。

true に設定した場合、このタスクは、その実行時にノードを生成します。

次の例では、指定したオプションでアセンブリを作成します。

<AL
    EmbedResources="@(EmbeddedResource)"
    Culture="%(EmbeddedResource.Culture)"
    TemplateFile="@(IntermediateAssembly)"
    KeyContainer="$(KeyContainerName)"
    KeyFile="$(KeyOriginatorFile)"
    DelaySign="$(DelaySign)"

    OutputAssembly=
       "%(EmbeddedResource.Culture)\$(TargetName).resources.dll">

    <Output TaskParameter="OutputAssembly"
        ItemName="SatelliteAssemblies"/>
</AL>

関連項目