ResolveAssemblyReference 任务
确定依赖指定程序集的所有程序集。 包括第二和第 n 级依赖项。
参数
下表描述了 ResolveAssemblyReference 任务的参数。
Parameter |
说明 |
---|---|
AllowedAssemblyExtensions |
可选 String[] 参数。 解析引用时要使用的程序集文件扩展名。 默认文件扩展名为 .exe 和 .dll。 |
AllowedRelatedFileExtensions |
可选 String[] 参数。 在搜索相互关联的文件时使用的文件扩展名。 默认文件扩展名为 .pdb 和 .xml。 |
AppConfigFile |
可选 String 参数。 指定一个用于分析和提取 bindingRedirect 映射的 app.config 文件。 如果指定了此参数,则 AutoUnify 参数必须为 false。 |
AutoUnify |
可选 Boolean 参数。 此参数用于生成程序集,例如,不能有正常 App.Config 文件的 DLL。 当为 true 时,会自动处理最后所得到的依赖项关系图,如同向 AppConfigFile 参数传递了 App.Config 文件一样。 此虚拟 App.Config 文件对于每组冲突的程序集都有一个 bindingRedirect 项,以便选择最高版本的程序集。 这样做的后果是,永远不会就程序集冲突发出警告,因为每个冲突都将得到解决。 为 true 时,每个不同的重映射都将导致生成一条高优先级注释,显示旧版本和新版本以及 AutoUnify 为 true。 为 true 时,AppConfigFile 参数必须为空。 当为 false 时,不会自动重新映射程序集版本。 当存在两个版本的程序集时,将发出警告。 当为 false 时,在同一程序集的不同版本之间,每个不同的冲突都将导致生成一条高优先级注释。 这些注释都后跟一个警告。 警告有唯一的错误代码,并包含文本“引用程序集和依赖程序集的不同版本之间出现冲突”。 |
Assemblies |
可选 ITaskItem[] 参数。 指定必须标识其完整路径和依赖项的项。 这些项可以具有简单名称(如“System”),也可以具有强名称(如“System, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”)。 传递到此参数的项可以具有下面的项元数据:
|
AssemblyFiles |
可选 ITaskItem[] 参数。 指定要查找其依赖项的完全限定程序集的列表。 传递到此参数的项可以具有下面的项元数据:
|
AutoUnify |
可选 Boolean 参数。 如果为 true,则会自动处理最后所得到的依赖项关系图,如同向 AppConfigFile 参数传递了 App.Config 文件一样。 此虚拟 App.Config 文件对于每组冲突的程序集都有一个 bindingRedirect 项,以便选择最高版本的程序集。 这样做的一个结果是,永远不会就程序集冲突发出警告,因为每个冲突都将得到解决。 每个不同的重映射都将导致生成一条高优先级注释,指出旧版本和新版本,实际上因为 AutoUnify 为 true,所以这是自动完成的。 如果为 false,则不会自动重新映射程序集版本。 当存在两个版本的程序集时,将发出警告。 在同一程序集的不同版本之间,每个不同的冲突都将导致生成一条高优先级注释。 在显示所有这些注释之后,将发出一个警告,其中包含唯一的错误代码和文本:“引用程序集和依赖程序集的不同版本之间出现冲突”。 默认值为 false。 |
CandidateAssemblyFiles |
可选 String[] 参数。 指定要用于搜索和解析过程的程序集的列表。 传递到此参数的值必须是绝对文件名或相对于项目的文件名。 当 SearchPaths 参数包含 {CandidateAssemblyFiles} 作为要考虑的路径之一时,将考虑此列表中的程序集。 |
CopyLocalDependenciesWhenParentReferenceInGac |
可选 [Boolean] 参数。 如果为 true,则确定是否应在本地复制依赖项,所执行的一项检查是查看项目文件中的父引用是否设置了 Private 元数据。 如果设置,则 Private 值将用作依赖项。 如果没有设置该元数据,则依赖项将接受与父引用相同的检查。 其中一项检查为查看引用是否位于 GAC 中。 如果某个引用位于 GAC 中,则不会对该引用进行本地复制,因为假定该引用位于目标计算机上的 GAC 中。 这只适用于具体引用,而不适用于其依赖项。 例如,GAC 中项目文件中的引用不会进行本地复制,而其依赖项则进行本地复制,原因是它们不在 GAC 中。 如果为 false,则检查项目文件引用,以了解它们是否位于 GAC 中,并适时进行本地复制。 检查依赖项,以了解它们是否位于 GAC 中,还要检查项目文件中的父引用是否位于 GAC 中。 如果项目文件中的父引用位于 GAC 中,则不会在本地复制依赖项。 无论此参数为 true 还是 false,如果有多个父引用并且其中任何一个都不在 GAC 中,则所有引用都将进行本地复制。 |
CopyLocalFiles |
可选 ITaskItem[] 只读输出参数。 返回 ResolvedFiles、ResolvedDependencyFiles、RelatedFiles、SatelliteFiles 和 ScatterFiles 参数中 CopyLocal 项元数据的值为 true 的每个文件。 |
FilesWritten |
可选 ITaskItem[] 输出参数。 包含写入到磁盘的项。 |
FindDependencies |
可选 Boolean 参数。 如果为 true,将查找依赖项。 否则,将只查找主引用。 默认值为 true。 |
FindRelatedFiles |
可选 Boolean 参数。 如果为 true,将查找相关的文件,如 .pdb 文件和 .xml 文件。 默认值为 true。 |
FindSatellites |
可选 Boolean 参数。 如果为 true,将查找附属程序集。 默认值为 true. |
FindSerializationAssemblies |
可选 Boolean 参数。 如果为 true,则该任务将搜索序列化程序集。 默认值为 true。 |
FullFrameworkAssemblyTables |
可选 ITaskItem[] 参数。 指定有“FrameworkDirectory”元数据的项,以便将 redist 列表与特定框架目录关联。 如果没有进行关联,将会记录错误。 如果没有设置 FrameworkDirectory,则解析程序集引用 (RAR) 逻辑将使用目标框架目录。 |
FullFrameworkFolders |
可选 [String][] 参数。 指定包含 RedistList 目录的文件夹集。 此目录表示给定客户端配置文件的完整框架,例如,%programfiles%\reference assemblies\microsoft\framework\v4.0。 |
FullTargetFrameworkSubsetNames |
可选 String[] 参数。 包含目标框架子集名称的列表。 如果此列表中的某个子集名称与 TargetFrameworkSubset 名称属性中的某个名称匹配,则系统在生成时将排除该特定目标框架子集。 |
IgnoreDefaultInstalledAssemblyTables |
可选 Boolean 参数。 如果为 true,则该任务将搜索并使用在 TargetFrameworkDirectories 下的 \RedistList 目录中找到的其他已安装的程序集表(或“Redist Lists”)。 默认值为 false. |
IgnoreDefaultInstalledAssemblySubsetTables |
可选 Boolean 参数。 如果为 true,则该任务将搜索并使用在 TargetFrameworkDirectories 下的 \SubsetList 目录中找到的其他已安装的程序集子集表(或“Subset Lists”)。 默认值为 false. |
InstalledAssemblySubsetTables |
可选 ITaskItem[] 参数。 包含 XML 文件的列表,这些 XML 文件指定应存在于目标子集中的程序集。 根据需要,此列表中的项可以指定“FrameworkDirectory”元数据,以便将 InstalledAssemblySubsetTable 与特定的框架目录关联。 如果只有一个 TargetFrameworkDirectories 元素,则会将此列表中缺少“FrameworkDirectory”元数据的任何项视为设置为传递给 TargetFrameworkDirectories 的唯一值。 |
InstalledAssemblyTables |
可选 String 参数。 包含 XML 文件的列表,这些 XML 文件指定应在目标计算机上安装的程序集。 设置了 InstalledAssemblyTables 时,此列表中程序集的早期版本会合并到该 XML 中列出的较新版本中。 此外,具有 InGAC='true' 设置的程序集将被视为必备,并设置为 CopyLocal='false'(除非显式重写)。 根据需要,此列表中的项可以指定“FrameworkDirectory”元数据,以便将 InstalledAssemblyTable 与特定框架目录关联。 但是,除非 Redist 名称以 “Microsoft-Windows-CLRCoreComp”开头,否则将会忽略此设置。 如果只有一个 TargetFrameworkDirectories 元素,则会将此列表中缺少“FrameworkDirectory”元数据的任何项视为设置为传递给 TargetFrameworkDirectories 的唯一值。 |
LatestTargetFrameworkDirectories |
可选 String[] 参数。 指定目录列表,这些目录包含面向计算机的最新框架的 redist 列表。 如果不对此进行设置,则将使用针对给定的目标框架标识符安装在计算机上的最高框架。 |
ProfileName |
可选 [String] 参数。
|
RelatedFiles |
可选 ITaskItem[] 只读输出参数。 包含与引用具有相同基名称的相关文件,如 XML 和 .pdb 文件。 此参数中列出的文件可以包含下面的项元数据:
|
ResolvedDependencyFiles |
可选 ITaskItem[] 只读输出参数。 包含依赖项的第 n 级路径。 此参数不包括第一级主引用,此类引用包含在 ResolvedFiles 参数中。 此参数中的项可以包含以下项元数据:
|
ResolvedFiles |
可选 ITaskItem[] 只读输出参数。 包含已解析为完整路径的所有主引用的列表。 此参数中的项可以包含以下项元数据:
|
SatelliteFiles |
可选 ITaskItem[] 只读输出参数。 指定找到的任何附属文件。 如果导致此项存在的引用或依赖项为 CopyLocal=true,则这些项为 CopyLocal=true。 此参数中的项可以包含以下项元数据:
|
ScatterFiles |
可选 ITaskItem[] 只读输出参数。 包含与某个给定的程序集关联的散点文件。 此参数中的项可以包含以下项元数据:
|
SearchPaths |
必选 String[] 参数。 指定目录或特殊位置,将在其中进行搜索以找到磁盘上表示程序集的文件。 搜索路径的列出顺序非常重要。 对于每个程序集,都会按从左向右的顺序搜索路径列表。 在找到了表示程序集的文件时,会停止该搜索并开始搜索下一个程序集。 此参数接受以下类型的值:
|
SerializationAssemblyFiles |
可选 ITaskItem[] 只读输出参数。 包含找到的任何 XML 序列化程序集。 当且仅当导致此项存在的引用或依赖项为 CopyLocal=true,则这些项将标记为 CopyLocal=true。 Boolean 元数据 CopyLocal 指示是否应当将给定的引用复制到输出目录。 |
Silent |
可选 Boolean 参数。 如果为 true,将不记录任何消息。 默认值为 false。 |
StateFile |
可选 String 参数。 指定一个文件名,该文件名指示保存此任务的中间生成状态的位置。 |
SuggestedRedirects |
可选 ITaskItem[] 只读输出参数。 无论 AutoUnify 参数的值如何,对于每个不同的冲突程序集标识都包含一项。 这包括已找到的、在应用程序配置文件中没有相应的 bindingRedirect 项的每个区域性和 PKT。 每一项都可以包含以下信息:
|
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) 引用。 此参数的值可以为 x86、IA64 或 AMD64。 如果缺少此参数,该任务将首先考虑与当前运行的进程的体系结构匹配的程序集。 如果没有找到程序集,则该任务考虑 GAC 中 ProcessorArchitecture 值为 MSIL 或没有 ProcessorArchitecture 值的程序集。 |
备注
除了上面列出的参数,此任务还将从 TaskExtension 类继承参数,此类本身从 Task 类继承。 有关这些附加参数及其说明的列表,请参见 TaskExtension 基类。