ResolveAssemblyReference タスク

指定したアセンブリに依存するすべてのアセンブリを判断します。これには、2 番目と n 番目の依存関係も含まれます。

パラメーター

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

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

参照を解決するときに使用するアセンブリ ファイル名拡張子。 既定のファイル名拡張子は、.exe.dll です。
AllowedRelatedFileExtensions 省略可能な String[] 型のパラメーターです。

相互に関連するファイルの検索に使用するファイル名拡張子。 既定の拡張子は、.pdb.xml です。
AppConfigFile 省略可能な String 型のパラメーターです。

bindingRedirect マッピングを解析および抽出する元になる app.config ファイルを指定します。 このパラメーターを指定する場合は、 AutoUnify パラメーターを falseにする必要があります。
Assemblies 省略可能な ITaskItem[] 型のパラメーターです。

完全パスと依存関係を特定する必要のあるアイテムを指定します。 これらのアイテムの名前には、「System」のような簡易名、または「System, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089」のような厳密な名前を指定できます。

このパラメーターに渡されるアイテムには、必要に応じて、次のアイテム メタデータを指定できます。

- Private: Boolean 値。 trueの場合、アイテムはローカルにコピーされます。 既定値は true です。
- HintPath: String 値。 参照として使用するパスとファイル名を指定します。 このメタデータは、SearchPaths パラメーターに {HintPathFromItem} を指定した場合に使用されます。 既定値は空の文字列です。
- SpecificVersion: Boolean 値。 trueの場合、 Include 属性に指定されたとおりの名前に一致する必要があります。 falseの場合、同じ簡易名を持つ任意のアセンブリを使用できます。 SpecificVersion が指定されていない場合は、アイテムの Include 属性の値が調べられます。 その属性が簡易名の場合は、 SpecificVersionfalseにする必要があります。 その属性が厳密な名前の場合は、 SpecificVersiontrueにする必要があります。
参照項目型と共に使用する場合、 Include 属性は、解決されるアセンブリの完全なフュージョン名である必要があります。 アセンブリが解決されるのは、フュージョンが Include 属性と完全に一致する場合のみです。
プロジェクトが .NET Framework の 1 つのバージョンを対象とし、それより新しいバージョンの .NET Framework 用にコンパイルされたアセンブリを参照している場合、その参照が解決されるのは、 SpecificVersiontrueにする必要があります。
プロジェクトがプロファイルを対象とし、プロファイルにないアセンブリを参照している場合、その参照が解決されるのは、 SpecificVersiontrueにする必要があります。
- ExecutableExtension: String 値。 存在する場合、解決されるアセンブリの拡張子はこの値である必要があります。 存在しない場合、チェックするディレクトリごとに .dll が最初に検索され、次に .exe が検索されます。
- SubType: String 値。 SubType メタデータが空であるアイテムのみがアセンブリの完全パスに解決されます。 SubType メタデータが空でないアイテムは無視されます。
- AssemblyFolderKey: String 値。 古いバージョンとの互換性の目的でサポートされるメタデータです。 これは、アセンブリ参照を解決するために Assemblies が使う必要のあるユーザー定義のレジストリ キー (hklm\<VendorFolder> など) を指定します。
AssemblyFiles 省略可能な ITaskItem[] 型のパラメーターです。

依存関係を見つける対象の完全修飾アセンブリの一覧を指定します。

このパラメーターに渡されるアイテムには、必要に応じて、次のアイテム メタデータを指定できます。

- Private: 省略可能な Boolean 値。 true の場合、アイテムはローカルにコピーされます。
- FusionName: 省略可能な String メタデータ。 このアイテムの簡易名または厳密な名前を指定します。 この属性が存在する場合、名前を取得するためにアセンブリ ファイルを開く必要がないため、時間を節約できます。
AssemblyInformationCacheOutputPath 省略可能な String 型のパラメーターです。

null でない場合は、AssemblyFiles 入力に関するマシンに依存しない情報を、名前付きファイルにシリアル化します。 これにより通常のキャッシュがオーバーライドされるため、多くの参照を含む SDK を構築し、顧客にキャッシュを配布する場合にのみ使用します。
AssemblyInformationCachePaths 省略可能な ITaskItem 型のパラメーターです。

null でない場合は、obj フォルダー内の通常のキャッシュを MSBuild で見つけることができない場合は、この一連のキャッシュを入力として使用します。 通常、最初のビルドのパフォーマンスを向上させるために SDK によって提供されます。
AutoUnify 省略可能な Boolean 型のパラメーターです。

このパラメーターは、通常の App.Config ファイルを持つことができない DLL などのアセンブリのビルドに使用されます。

true の場合、生成される依存関係グラフは、AppConfigFile パラメーターに渡される App.Config ファイルが存在するものと仮定して自動的に処理されます。 この仮想 App.Config ファイルには、競合するアセンブリ セットごとに bindingRedirect エントリがあるので、最高バージョンのアセンブリが選択されます。 この結果、すべての競合が解決されるため、競合アセンブリに関する警告は発生しません。

trueの場合、再割り当てのたびに高優先度コメントが作成されます。このコメントでは、古いバージョンと新しいバージョンが示され、また AutoUnifytrueであったことが示されます。

true の場合、AppConfigFile パラメーターを空にする必要があります。

falseの場合、アセンブリ バージョンの再割り当ては自動的には発生しません。 アセンブリの 2 つのバージョンが存在する場合は、警告が発行されます。

falseの場合、同じアセンブリの異なるバージョン間に競合が発生するたびに、高優先度コメントが発行されます。 これらのコメントの後に、1 つの警告が発行されます。 この警告には、一意のエラー コードと、「参照アセンブリと依存アセンブリの異なるバージョン間での競合が見つかりました」というテキストが含まれます。

既定値は false です。
CandidateAssemblyFiles 省略可能な String[] 型のパラメーターです。

検索と解決のプロセスで使うアセンブリの一覧を指定します。 このパラメーターに渡す値は、絶対ファイル名またはプロジェクトに対する相対ファイル名である必要があります。

SearchPaths パラメーターに、考慮するパスの 1 つとして {CandidateAssemblyFiles} が含まれている場合に、この一覧のアセンブリが考慮されます。
CopyLocalDependenciesWhenParentReferenceInGac 省略可能な Boolean 型のパラメーターです。

true の場合、依存関係をローカルにコピーする必要があるかどうかを確認するために、実行されるチェックのいずれかで、プロジェクト ファイルの親参照に Private メタデータが設定されているかどうかが確認されます。 メタデータが設定されている場合は、Private 値が依存関係として使用されます。

メタデータが設定されていない場合は、依存関係について親の参照と同じチェックが実行されます。 これらのチェックの 1 つでは、その参照が GAC 内にあるかどうかが確認されます。 参照が GAC 内にある場合は、コピー先のコンピューターの GAC 内にあると見なされるため、ローカルにコピーされません。 これは特定の参照だけに当てはまり、依存関係には当てはまりません。

たとえば、GAC 内にあるプロジェクト ファイルの参照はローカルにコピーされませんが、その依存関係は GAC 内にないため、ローカルにコピーされます。

false の場合、プロジェクト ファイルの参照が GAC 内にあるかどうかがチェックされ、必要に応じてローカルにコピーされます。

依存関係については、GAC 内にあるかどうかがチェックされ、プロジェクト ファイルからの親参照が GAC 内にあるかどうかもチェックされます。

プロジェクト ファイルから親参照が GAC 内にある場合は、依存関係はローカルにコピーされません。

このパラメーターが true または false のどちらであっても、複数の親参照があり、そのいずれかが GAC 内にない場合は、すべての親参照がローカルにコピーされます。
CopyLocalFiles 省略可能な ITaskItem[] 型の読み取り専用の出力パラメーターです。

ResolvedFilesResolvedDependencyFilesRelatedFilesSatelliteFilesScatterFiles の各パラメーターに指定されたファイルのうち、CopyLocal アイテム メタデータの値が true であるファイルを返します。
DependsOnNETStandard Boolean 出力パラメーターです。

解決されたプライマリ参照のいずれかが .NET Standard に依存するかどうか。
DependsOnSystemRuntime Boolean 出力パラメーターです。

解決されたプライマリ参照のいずれかが System.Runtime に依存するかどうか。
DoNotCopyLocalIfInGac 省略可能な Boolean 型のパラメーターです。

CopyLocal を決定するためにレガシ モードを有効にします。 true の場合、参照アセンブリは、GAC で見つかった場合はローカルにコピーされません。 false の場合、アセンブリは、GAC でのみ見つかった場合を除き、ローカルにコピーされます。 既定値は false です。
FilesWritten 省略可能な ITaskItem[] 型の出力パラメーターです。

ディスクに書き込まれたアイテムが含まれます。
FindDependencies 省略可能な Boolean 型のパラメーターです。

trueの場合、依存関係が検索されます。 それ以外の場合、プライマリ参照のみが検索されます。 既定値は true です。
FindDependenciesOfExternallyResolvedReferences 省略可能な Boolean 型のパラメーターです。

参照が ExternallyResolved=true メタデータでマークされている場合でも、依存関係を強制的にウォークします。
FindRelatedFiles 省略可能な Boolean 型のパラメーターです。

true の場合、.pdb ファイルや .xml ファイルなどの関連ファイルが検索されます。 既定値は true です。
FindSatellites 省略可能な Boolean 型のパラメーターです。

trueの場合、サテライト アセンブリが検索されます。 既定値は true.
FindSerializationAssemblies 省略可能な Boolean 型のパラメーターです。

trueの場合、シリアル化アセンブリが検索されます。 既定値は true です。
FullFrameworkAssemblyTables 省略可能な ITaskItem[] 型のパラメーターです。

"FrameworkDirectory" メタデータを持つアイテムを指定して、再頒布リストを特定のフレームワーク ディレクトリに関連付けます。 関連付けが行われていない場合は、ログにエラーが記録されます。 アセンブリ参照の解決 (RAR) ロジックでは、FrameworkDirectory が設定されていない場合、ターゲット フレームワーク ディレクトリが使用されます。
FullFrameworkFolders 省略可能な System.String[] 型のパラメーターです。

RedistList ディレクトリが含まれるフォルダーを指定します。 このディレクトリは、特定のクライアント プロファイルのフレームワーク全体を表します (たとえば、%programfiles%\reference assemblies\microsoft\framework\v4.0)。
FullTargetFrameworkSubsetNames 省略可能な String[] 型のパラメーターです。

ターゲット フレームワークのサブセット名の一覧が含まれます。 この一覧にあるサブセット名が、 TargetFrameworkSubset 名前プロパティにある名前の 1 つと一致する場合、ビルド時にその特定のターゲット フレームワーク サブセットが除外されます。
IgnoreDefaultInstalledAssemblyTables 省略可能な Boolean 型のパラメーターです。

true の場合、TargetFrameworkDirectories の下の \RedistList ディレクトリにある、インストールされた追加のアセンブリ テーブル (または "再頒布リスト") がタスクによって検索され、使用されます。 既定値は false.
IgnoreDefaultInstalledAssemblySubsetTables 省略可能な Boolean 型のパラメーターです。

true の場合、TargetFrameworkDirectories の下の \SubsetList ディレクトリにある、インストールされた追加のアセンブリ サブセット テーブル (または "サブセット リスト") がタスクによって検索され、使用されます。 既定値は false.
IgnoreTargetFrameworkAttributeVersionMismatch 省略可能な Boolean 型のパラメーターです。

true の場合、タスクは現在のプロジェクトよりも高い.NET Framework バージョンを対象とするアセンブリを解決します。 既定値は false であり、これらの参照をスキップします。
IgnoreVersionForFrameworkReferences 省略可能な Boolean 型のパラメーターです。

プライマリ参照がフレームワーク アセンブリの場合は、そのバージョン情報を無視し、現在のターゲット フレームワークからフレームワーク アセンブリを実際に解決します。
InstalledAssemblySubsetTables 省略可能な ITaskItem[] 型のパラメーターです。

ターゲット サブセットに含められるはずのアセンブリを指定する XML ファイルの一覧を含みます。

必要に応じて、この一覧に含まれるアイテムは "FrameworkDirectory" メタデータを指定して InstalledAssemblySubsetTable

特定のフレームワーク ディレクトリに関連付けることができます。

TargetFrameworkDirectories 要素が 1 つだけの場合、この一覧に含まれるアイテムのうち "FrameworkDirectory" メタデータを持たないアイテムは、 TargetFrameworkDirectoriesに渡される一意の値に設定されているものとして扱われます。
InstalledAssemblyTables 省略可能な String 型のパラメーターです。

ターゲット コンピューターにインストールされるはずのアセンブリを指定する XML ファイルの一覧を含みます。

InstalledAssemblyTables が設定されている場合、一覧に含まれる前のバージョンのアセンブリは、XML で指定されている新しい方のバージョンにマージされます。 また、InGAC='true' が設定されているアセンブリは必須と見なされ、明示的にオーバーライドされない限り、CopyLocal='false' に設定されます。

必要に応じて、この一覧に含まれるアイテムで "FrameworkDirectory" メタデータを指定して InstalledAssemblyTable を特定のフレームワーク ディレクトリに関連付けることができます。 ただし、この設定は、再頒布名が

"Microsoft-Windows-CLRCoreComp" で始まらない場合は無視されます。

TargetFrameworkDirectories 要素が 1 つだけの場合、この一覧に含まれるアイテムのうち "FrameworkDirectory" メタデータを持たないアイテムは、引き渡される一意の値に設定されているものとして扱われます。

TargetFrameworkDirectoriesに対する呼び出しで返された結果。
LatestTargetFrameworkDirectories 省略可能な String[] 型のパラメーターです。

コンピューター上で対象にすることができる最新のフレームワークの再領布リストを含むディレクトリの一覧を指定します。 これが設定されていない場合、指定されたターゲット フレームワーク識別子についてコンピューターにインストールされている最上位のフレームワークが使用されます。
OutputUnresolvedAssemblyConflicts 省略可能な Boolean 型のパラメーターです。

true の場合は、診断コード MSB3277 と競合している未解決のアセンブリが出力 UnresolveAssemblyConflicts に出力されます。
ProfileName 省略可能な String 型のパラメーターです。

対象とするフレームワーク プロファイルの名前を指定します。 たとえば、Client、Web、Network などです。 .NET Framework プロファイルにのみ関連します。
RelatedFiles 省略可能な ITaskItem[] 型の読み取り専用の出力パラメーターです。

参照と同じ基本名を持つ XML ファイルや .pdb ファイルなどの関連ファイルが含まれます。

このパラメーターに指定するファイルには、必要に応じて、次のアイテム メタデータを含めることができます。

- Primary: Boolean 値。 trueの場合、ファイル アイテムは Assemblies 型のパラメーターです。 既定値は falseにする必要があります。
- CopyLocal: Boolean 値。 指定された参照を出力ディレクトリにコピーする必要があるかどうかを示します。
ResolvedDependencyFiles 省略可能な ITaskItem[] 型の読み取り専用の出力パラメーターです。

依存関係への n番目のパスが含まれます。 このパラメーターには、1 番目のプライマリ参照は含まれていません。1 番目の参照は ResolvedFiles パラメーターに含まれています。

このパラメーターに指定するアイテムには、必要に応じて、次のアイテム メタデータを含めることができます。

- CopyLocal: Boolean 値。 指定された参照を出力ディレクトリにコピーする必要があるかどうかを示します。
- FusionName: String 値。 この依存関係の名前を指定します。
- ResolvedFrom: String 値。 このファイルに解決されたリテラル検索パスを指定します。
ResolvedFiles 省略可能な ITaskItem[] 型の読み取り専用の出力パラメーターです。

完全パスに解決されるすべてのプライマリ参照の一覧が含まれます。

このパラメーターに指定するアイテムには、必要に応じて、次のアイテム メタデータを含めることができます。

- CopyLocal: Boolean 値。 指定された参照を出力ディレクトリにコピーする必要があるかどうかを示します。
- FusionName: String 値。 この依存関係の名前を指定します。
- ResolvedFrom: String 値。 このファイルに解決されたリテラル検索パスを指定します。
ResolvedSDKReferences 省略可能な ITaskItem[] 型のパラメーターです。

SDK の名前、SDK の場所、およびターゲットの構成を含む解決済みの SDK 参照の一覧。 これらの場所は、SDKName のメタデータが参照にアタッチされている場合にのみ検索されます。
SatelliteFiles 省略可能な ITaskItem[] 型の読み取り専用の出力パラメーターです。

見つかったすべてのサテライト ファイルを指定します。 このアイテムが存在する原因となった参照または依存関係が CopyLocal=true の場合、これらのパラメーターは CopyLocal=true となります。

このパラメーターに指定するアイテムには、必要に応じて、次のアイテム メタデータを含めることができます。

- CopyLocal: Boolean 値。 指定された参照を出力ディレクトリにコピーする必要があるかどうかを示します。 このアイテムが存在する原因となった参照または依存関係の true true CopyLocal の場合、この値は trueにする必要があります。
- DestinationSubDirectory: String 値。 このアイテムのコピー先の相対ディレクトリを指定します。
ScatterFiles 省略可能な ITaskItem[] 型の読み取り専用の出力パラメーターです。

指定されたアセンブリの 1 つに関連付けられた scatter ファイルが含まれています。

このパラメーターに指定するアイテムには、必要に応じて、次のアイテム メタデータを含めることができます。

- CopyLocal: Boolean 値。 指定された参照を出力ディレクトリにコピーする必要があるかどうかを示します。
SearchPaths 必須の String[] 型のパラメーターです。

アセンブリを表すディスク上のファイルを探すために検索されるディレクトリまたは特別な場所を指定します。 検索パスを指定する順序が重要です。 各アセンブリについて、パスの一覧が左から右に検索されます。 アセンブリを表すファイルが見つかると、検索は停止し、次のアセンブリの検索が始まります。

このパラメーターは、セミコロンで区切られた値のリストを受け入れます。値は、ディレクトリ パスでも、下のリストからの特別なリテラル値でも可能です。

- {HintPathFromItem}: タスクがベース アイテムの HintPath メタデータを調べるように指定します。
- {CandidateAssemblyFiles}: タスクが CandidateAssemblyFiles パラメーターによって渡されたファイルを調べるように指定します。
- {Registry:<AssemblyFoldersBase>、<RuntimeVersion>、<AssemblyFoldersSuffix>}: タスクが、レジストリに指定された追加フォルダーで検索を実行するように指定します。 <AssemblyFoldersBase>、<RuntimeVersion>、<AssemblyFoldersSuffix> は、検索されるレジストリの場所を示す特定の値に置き換える必要があります。 一般的なターゲットの既定の場所は {Registry:$(FrameworkRegistryBase), $(TargetFrameworkVersion), $(AssemblyFoldersSuffix), $(AssemblyFoldersExConditions)} です。
- {AssemblyFolders}: タスクがレジストリからアセンブリを検索する Visual Studio .NET 2003 のスキームを使用するように指定します。
- {GAC}: タスクがグローバル アセンブリ キャッシュ (GAC) 内を検索するように指定します。
- {RawFileName}: タスクがアイテムの Include 値を正確なパスとファイル名として考慮するように指定します。
SerializationAssemblyFiles 省略可能な ITaskItem[] 型の読み取り専用の出力パラメーターです。

見つかったすべての XML シリアル化アセンブリが格納されます。 このアイテムが存在する原因となった参照または依存関係が CopyLocal=true の場合に限り、これらのアイテムは CopyLocal=true とマークされます。

Boolean メタデータ CopyLocal は、指定された参照を出力ディレクトリにコピーする必要があるかどうかを示します。
Silent 省略可能な Boolean 型のパラメーターです。

trueの場合、メッセージはログに記録されません。 既定値は false です。
StateFile 省略可能な String 型のパラメーターです。

このタスクの中間ビルド状態の保存場所を示すファイル名を指定します。
SuggestedRedirects 省略可能な ITaskItem[] 型の読み取り専用の出力パラメーターです。

AutoUnify パラメーターの値にかかわらず、すべての別個の競合アセンブリごとに 1 つのアイテムが含まれます。 これには、アプリケーション構成ファイルに適切な bindingRedirect エントリが存在しないことが判明したすべてのカルチャと PKT が含まれます。

各アイテムには、オプションで、次の情報が含まれています。

- Include 属性: Version フィールドの値が 0.0.0.0 であるアセンブリ ファミリの完全名が含まれます。
- MaxVersion アイテム メタデータ: 最大バージョン番号が含まれています。
SupportsBindingRedirectGeneration 省略可能な Boolean 型のパラメーターです。

サポートされているプロジェクトでこれを true に設定して、バインド リダイレクトを自動的に生成します (現在は EXE プロジェクトでのみサポートされています)。
TargetedRuntimeVersion 省略可能な String 型のパラメーターです。

ターゲットにするランタイムのバージョン (たとえば、2.0.57027 または v2.0.57027 など) を指定します。
TargetFrameworkDirectories 省略可能な String[] 型のパラメーターです。

ターゲット フレームワーク ディレクトリのパスを指定します。 このパラメーターは、生成されるアイテムの CopyLocal ステータスを確認するために必要です。

このパラメーターを指定しない場合、ソース アイテムの Private メタデータの値が明示的に true である場合を除いて、生成されるアイテムの CopyLocal 値は true にはなりません。
TargetFrameworkMoniker 省略可能な String 型のパラメーターです。

監視する TargetFrameworkMoniker です (ある場合)。 これは、ログ記録のために使用されます。
TargetFrameworkMonikerDisplayName 省略可能な String 型のパラメーターです。

監視する TargetFrameworkMoniker の表示名です (ある場合)。 これは、ログ記録のために使用されます。
TargetFrameworkSubsets 省略可能な String[] 型のパラメーターです。

ターゲット フレームワーク ディレクトリ内で検索するターゲット フレームワークのサブセット名の一覧が含まれます。
TargetFrameworkVersion 省略可能な String 型のパラメーターです。

プロジェクトのターゲット フレームワークのバージョンです。 既定値は空です。その場合、ターゲット フレームワークに基づく参照のフィルター処理はありません。
TargetProcessorArchitecture 省略可能な String 型のパラメーターです。

優先されるターゲットのプロセッサ アーキテクチャです。 グローバル アセンブリ キャッシュ (GAC) の参照を解決するために使用されます。

このパラメーターの値には、x86IA64、または AMD64 を指定できます。

このパラメーターがない場合は、最初に、現在実行中のプロセスのアーキテクチャに一致するアセンブリが検討されます。 そのようなアセンブリが見つからない場合は、 ProcessorArchitecture 値が MSIL である GAC 内のアセンブリ、または ProcessorArchitecture 値のない GAC 内のアセンブリが検討されます。
UnresolvedAssemblyConflicts 省略可能な ITaskItem[] 型の読み取り専用の出力パラメーターです。

パラメーター OutputUnresolvedAssemblyConflictstrue の場合、これは MSB3277 で通常出力されていた未解決の競合に関する情報の一覧に設定されます。 それ以外の場合は、空です。
UnresolveFrameworkAssembliesFromHigherFrameworks 省略可能な Boolean 型のパラメーターです。

true に設定されている場合、バージョンがターゲット フレームワークのバージョン以上のフレームワーク アセンブリは強制的に未解決となります。
WarnOrErrorOnTargetArchitectureMismatch 省略可能な String 型のパラメーターです。

ターゲット プロセッサ アーキテクチャとプライマリ参照のアーキテクチャが一致しない場合は、これが Error の場合、エラーがログに記録されます。Warning の場合、警告がログに記録されます。None の場合、エラーまたは警告はログに記録されません。 既定値は Warning です。

警告

次の警告がログに記録されます。

  • ResolveAssemblyReference.TurnOnAutoGenerateBindingRedirects

  • ResolveAssemblyReference.SuggestedRedirects

  • ResolveAssemblyReference.FoundConflicts

  • ResolveAssemblyReference.AssemblyFoldersExSearchLocations

  • ResolveAssemblyReference.UnifiedPrimaryReference

  • ResolveAssemblyReference.PrimaryReference

  • ResolveAssemblyReference.UnifiedDependency

  • ResolveAssemblyReference.UnificationByAutoUnify

  • ResolveAssemblyReference.UnificationByAppConfig

  • ResolveAssemblyReference.UnificationByFrameworkRetarget

解説

上記のパラメーター以外に、このタスクは TaskExtension クラスからパラメーターを継承します。このクラス自体は、Task クラスから継承されます。 これらの追加のパラメーターの一覧とその説明については、「TaskExtension Base Class」を参照してください。

関連項目