共用方式為


ResolveAssemblyReference 工作

更新: 2008 年 7 月

決定相依於指定之組件 (Assembly) 的所有組件。這包括第二和第 n 順位的相依性。

參數

下表列出 ResolveAssemblyReference 工作的參數及其概略說明。

參數

說明

AllowedAssemblyExtensions

選擇性 (Optional) String[] 參數。

在解析參考時所使用的組件副檔名。預設的副檔名是 .exe 和 .dll。

AllowedRelatedFileExtensions

選擇性 (Optional) String[] 參數。

搜尋彼此相關的檔案時所使用的副檔名。預設的副檔名是 .pdb 和 .xml。

AppConfigFile

選擇性 String 參數。

指定剖析及擷取 bindingRedirect 對應的來源 app.config 檔。如果指定這個參數,AutoUnify 參數就必須為 false。

Assemblies

選擇性 ITaskItem[] 參數。

指定必須識別完整路徑和相依性的項目。這些項目可以具有諸如 "System" 的簡單名稱,或是類似 "System, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 的強式名稱 (Strong Name)。

傳遞至這個參數的項目可以選擇性地擁有下列項目中繼資料 (Metadata):

  • PrivateBoolean 值。如果為 true,則會在本機複製項目。預設值是 true。

  • HintPathString 值。指定用來當做參考的路徑和檔名。在 SearchPaths 參數中指定 {HintPathFromItem} 時,便會使用這個值。預設值是空字串。

  • SpecificVersionBoolean 值。若為 true,則必須符合 Include 屬性 (Attribute) 中指定的正確名稱。若為 false,則具有相同簡單名稱的任何組件都適用。如果沒有指定 SpecificVersion,此工作便會檢查項目之 Include 屬性中的值。如果這個屬性是簡單名稱,它的行為就如同 SpecificVersion 是 false 一般。如果這個屬性是強式名稱,它的行為就如同 SpecificVersion 是 true 一般。

  • ExecutableExtensionString 值。如果有,則所解析的組件必須具有這個副檔名。如果沒有,就會針對每個檢查過的目錄,將 .dll 視為第一個要採用的副檔名,接著是 .exe。

  • SubTypeString 值。只有含有空白 SubType 中繼資料的項目才會解析成完整的組件路徑。含有非空白 SubType 中繼資料的項目都會被忽略。

  • AssemblyFolderKeyString 值。支援這個中繼資料的目的是為了與舊版相容。它會指定使用者定義的登錄機碼 (Registry Key),例如 Assemblies 在解析組件參考時應該使用的 "hklm\VendorFolder"。

AssemblyFiles

選擇性 ITaskItem[] 參數。

指定要尋找相依性的完整組件清單。

傳遞至這個參數的項目可以選擇性地擁有下列項目中繼資料 (Metadata):

  • Private:選擇性 Boolean 值。如果為 true,則會在本機複製項目。

  • FusionName:選擇性 String 中繼資料。指定簡單或強式名稱做為這個項目的名稱。如果有這個屬性,就可以節省時間,因為您不需要開啟組件檔,就能取得該名稱。

AutoUnify

選擇性 Boolean 參數。

如果為 true,則結果相依性圖形就會自動被視為有個 App.Config 檔已傳遞至 AppConfigFile 參數。這個虛擬 App.Config 檔的每個衝突組件集合都有 bindingRedirect 項目,因此會選擇最新版本的組件。如此,將不會出現有關衝突組件的警告,因為每個衝突都已經獲得解決。每個不同的重新對應都會產生高優先權註解,指出新舊版本,並說明由於 AutoUnify 之前為 true,因此已自動完成這項工作。

如果為 false,就不會自動重新對應組件版本。當組件的兩個版本同時存在,將會出現警告。相同組件的兩個不同版本間的每個不同衝突,都會產生高優先權註解。在這些註解全部顯示之後,將會出現單一警告,其中含有唯一的錯誤碼以及說明「在參考和相依組件的不同版本之間發現衝突」的文字。

預設值為 false。

CandidateAssemblyFiles

選擇性 String[] 參數。

指定搜尋和解析處理程序所要使用的組件清單。傳遞至這個參數的值必須是絕對檔名或是與專案相關的檔名。

SearchPaths 參數包含 {CandidateAssemblyFiles} 做為要考量的其中一個路徑時,就會考慮這個清單中的組件。

CopyLocalFiles

選擇性的 ITaskItem[] 唯讀輸出參數。

傳回 ResolvedFilesResolvedDependencyFilesRelatedFilesSatelliteFilesScatterFiles 參數中的每個檔案,這些檔案具有值為 true 的 CopyLocal 項目中繼資料。

FilesWritten

選擇性的 ITaskItem[] 輸出參數。

包含寫入磁碟的項目。

FindDependencies

選擇性 Boolean 參數。

如果為 true,則會找到相依性。否則,只會找到主要參考。預設值為 true。

FindRelatedFiles

選擇性 Boolean 參數。

如果為 true,將會找到 .pdb 檔和 .xml 檔之類的相關檔案。預設值為 true。

FindSatellites

選擇性 Boolean 參數。

如果為 true,將會找到附屬組件。預設值為 true.。

FindSerializationAssemblies

選擇性 Boolean 參數。

若為 true,此工作便會搜尋序列化 (Serialization) 組件。預設值是 true。

FullTargetFrameworkSubsetNames

選擇性 (Optional) String[] 參數。

包含目標架構子集名稱的清單。如果清單中的子集名稱符合 TargetFrameworkSubset 名稱屬性中的其中一個名稱,則系統會在建置 (Build) 階段中排除該特定目標架構。

IgnoreDefaultInstalledAssemblyTables

選擇性 Boolean 參數。

若為 true,此工作便會搜尋並使用位於 TargetFrameworkDirectories 底下之 \RedistList 目錄中額外安裝的組件資料表 (或「可轉散發清單」)。預設值為 false.。

IgnoreDefaultInstalledAssemblySubsetTables

選擇性 Boolean 參數。

若為 true,則此工作會搜尋及使用位於 TargetFrameworkDirectories 底下之 \SubsetList 目錄中額外安裝的組件子集資料表 (或「子集清單」)。預設值為 false.。

InstalledAssemblySubsetTables

選擇性 ITaskItem[] 參數。

包含指定應該在目標子集中之組件的 XML 檔案清單。

這份清單中的項目也可以選擇指定 "FrameworkDirectory" 中繼資料,以便讓 InstalledAssemblySubsetTable

與特定架構目錄產生關聯。

如果只有一個 TargetFrameworkDirectories 項目,則會將這份清單中缺少 "FrameworkDirectory" 中繼資料的任何項目,視為已設定為傳遞至 TargetFrameworkDirectories 的唯一值。

InstalledAssemblyTables

選擇性 String 參數。

包含指定應該安裝在目標電腦上之組件的 XML 檔案清單。

設定 InstalledAssemblyTables 時,清單中組件的舊版本都會合併到 XML 中列出的新版本。此外,設定為 InGAC='true' 的組件都會被視為必要條件,而且除非明確覆寫,否則便會設定為 CopyLocal='false'。

這份清單中的項目也可以選擇指定 "FrameworkDirectory" 中繼資料,以便讓 InstalledAssemblyTable 與特定架構目錄產生關聯。不過,除非 Redist 名稱開頭如下,否則便會忽略這項設定:

"Microsoft-Windows-CLRCoreComp"。

如果只有一個 TargetFrameworkDirectories 項目,則會將這份清單中缺少 "FrameworkDirectory" 中繼資料的任何項目,視為已設定為傳遞

TargetFrameworkDirectories 的唯一值。

RelatedFiles

選擇性的 ITaskItem[] 唯讀輸出參數。

包含 XML 和 .pdb 檔之類的相關檔案,這些檔案具有與參考相同的主檔名 (Base Name)。

這個參數中列出的檔案可選擇性包含下列項目中繼資料:

  • PrimaryBoolean 值。若為 true,則檔案項目已利用 Assemblies 參數傳遞至陣列中。預設值為 false。

  • CopyLocalBoolean 值。指出特定參考是否應複製到輸出目錄。

ResolvedDependencyFiles

選擇性的 ITaskItem[] 唯讀輸出參數。

包含第 n 個序位的相依性路徑。這個參數並未包含第一個序位的主要參考,因為主要參考是包含在 ResolvedFiles 參數中。

這個參數中的項目可選擇性包含下列項目中繼資料:

  • CopyLocalBoolean 值。指出特定參考是否應複製到輸出目錄。

  • FusionNameString 值。指定此相依性的名稱。

  • ResolvedFromString 值。指定解析此檔案的來源常值搜尋路徑。

ResolvedFiles

選擇性的 ITaskItem[] 唯讀輸出參數。

包含所有解析為完整路徑的主要參考清單。

這個參數中的項目可選擇性包含下列項目中繼資料:

  • CopyLocalBoolean 值。指出特定參考是否應複製到輸出目錄。

  • FusionNameString 值。指定此相依性的名稱。

  • ResolvedFromString 值。指定解析此檔案的來源常值搜尋路徑。

SatelliteFiles

選擇性的 ITaskItem[] 唯讀輸出參數。

指定找到的任何附屬檔案。如果讓此項目可以存在的參考或相依性為 CopyLocal=true,這些檔案會是 CopyLocal=true。

這個參數中的項目可選擇性包含下列項目中繼資料:

  • CopyLocalBoolean 值。指出特定參考是否應複製到輸出目錄。如果讓此項目可以存在的參考或相依性具有值為 true 的 CopyLocal,則此值為 true。

  • DestinationSubDirectoryString 值。指定要複製此項目至其中之相對目的目錄。

ScatterFiles

選擇性的 ITaskItem[] 唯讀輸出參數。

包含與其中一個指定之組件相關的散佈圖檔。

這個參數中的項目可選擇性包含下列項目中繼資料:

  • CopyLocalBoolean 值。指出特定參考是否應複製到輸出目錄。

SearchPaths

必要的 String[] 參數。

指定要搜尋的目錄或特殊位置,以找出磁碟上代表組件的檔案。搜尋路徑的列示順序很重要。對每個組件而言,會從左至右搜尋路徑的清單。找到代表組件的檔案時,該搜尋便會停止,然後會開始搜尋下一個組件。

這個參數接受下列類型的值:

  • 目錄路徑。

  • {HintPathFromItem}:會指定工作將必須檢查基本項目的 HintPath 中繼資料。

  • {CandidateAssemblyFiles}:指定工作將會檢查透過 CandidateAssemblyFiles 參數傳入的檔案。

  • {Registry:_AssemblyFoldersBase_, _RuntimeVersion_, _AssemblyFoldersSuffix_}:

  • {AssemblyFolders}:指定此工作將會使用 Visual Studio .NET 2003 的「從登錄尋找組件」機制。

  • {GAC}:指定工作將會在 GAC 中搜尋。

  • {RawFileName}:指定工作會將項目的 Include 值視為正確的路徑和檔名。

Silent

選擇性 Boolean 參數。

如果為 true,則不會記錄任何訊息。預設值為 false。

StateFile

選擇性 String 參數。

指定檔名,表示要在該檔案中儲存這項工作的中繼建置狀態。

SuggestedRedirects

選擇性的 ITaskItem[] 唯讀輸出參數。

無論 AutoUnify 參數的值為何,都會包含每個不同衝突組件識別 (Identity) 的一個項目。其中包含每個文化特性 (Culture) 和找到的 PKT,該 PKT 在應用程式組態檔中並未具有適當的 bindingRedirect 項目。

每個項目都可選擇包含下列資訊:

  • Include 屬性:包含組件系列的完整名稱,其中版本欄位的值為 0.0.0.0。

  • MaxVersion 項目中繼資料:包含最大的版本號碼。

TargetFrameworkDirectories

選擇性 (Optional) String[] 參數。

指定目標架構目錄的路徑。這是用來判斷產生之項目的 CopyLocal 狀態所需的參數。

如果未指定這個參數,則產生的項目不會具有 true 的 CopyLocal 值,除非這些項目在其來源項目上明確具有 true 的 Private 中繼資料值。

TargetFrameworkSubsets

選擇性 (Optional) String[] 參數。

包含要在目標架構目錄中搜尋之目標架構子集名稱的清單。

TargetFrameworkVersion

選擇性 String 參數。

專案目標架構的版本。預設值為空白,表示不根據目標架構來篩選參考。

TargetProcessorArchitecture

選擇性 String 參數。

慣用的目標處理器架構。用於解析全域組件快取 (GAC) 參考。

這個參數可以具有 x86IA64AMD64 的值。

如果沒有這個參數,此工作會先考慮使用符合目前正在執行之處理序架構的組件。如果找不到組件,工作會考慮使用 GAC 中具有 MSILProcessorArchitecture 值或不具有 ProcessorArchitecture 值的組件。

請參閱

概念

MSBuild 工作

其他資源

MSBuild 工作參考

變更記錄

日期

記錄

原因

2008 年 7 月

加入下列參數:

  • AllowedAssemblyExtensions

  • AllowedRelatedFileExtensions

  • FindSerializationAssemblies

  • FullTargetFrameworkSubsetNames

  • IgnoreDefaultInstalledAssemblyTables

  • IgnoreDefaultInstalledAssemblySubsetTables

  • InstalledAssemblySubsetTables

  • InstalledAssemblyTables

  • TargetFrameworkSubsets

  • TargetFrameworkVersion

SP1 功能變更。