ResolveAssemblyReference 工作
決定相依於指定之組件 (Assembly) 的所有組件。這包括第二和第 n 順位的相依性。
參數
下表說明 ResolveAssemblyReference 工作的參數。
參數 |
描述 |
---|---|
AllowedAssemblyExtensions |
選擇性 String[] 參數。 在解析參考時所使用的組件副檔名。預設的副檔名是 .exe 和 .dll。 |
AllowedRelatedFileExtensions |
選擇性 String[] 參數。 搜尋彼此相關的檔案時所使用的副檔名。預設的副檔名是 .pdb 和 .xml。 |
AppConfigFile |
選擇性 String 參數。 指定剖析及擷取 bindingRedirect 對應的來源 app.config 檔。如果指定這個參數,AutoUnify 參數就必須為 false。 |
AutoUnify |
選擇性 Boolean 參數。 此參數會用於建置不能有一般 App.Config 檔案的組件,例如 DLL。 如果為 true,就會自動將產生的相依性圖形當做已有 App.Config 檔案傳遞至 AppConfigFile 參數來看待。這個虛擬 App.Config 檔的每個衝突組件集合都有 bindingRedirect 項目,因此會選擇最新版本的組件。如此,將不會出現有關衝突組件的警告,因為每個衝突都已經獲得解決。 如果為 true,每個不同的重新對應都會產生高優先權註解,顯示新舊版本,並指出 AutoUnify 為 true。 如果為 true,則 AppConfigFile 參數必須是空白。 如果為 false,就不會自動重新對應組件版本。當組件的兩個版本同時存在,將會發出警告。 如果為 false,相同組件的兩個不同版本間的每個不同衝突,都會產生高優先權註解。這些註解後面會接著單一警告。警告含有唯一的錯誤碼以及說明「在參考和相依組件的不同版本之間發現衝突」的文字。 |
Assemblies |
選擇性 ITaskItem[] 參數。 指定必須識別完整路徑和相依性的項目。這些項目可以具有諸如 "System" 的簡單名稱,或是類似 "System, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 的強式名稱 (Strong Name)。 傳遞至這個參數的項目可以選擇性地擁有下列項目中繼資料 (Metadata):
|
AssemblyFiles |
選擇性 ITaskItem[] 參數。 指定要尋找相依性的完整組件清單。 傳遞至這個參數的項目可以選擇性地擁有下列項目中繼資料 (Metadata):
|
AutoUnify |
選擇性 Boolean 參數。 如果為 true,則結果相依性圖形就會自動被視為有個 App.Config 檔已傳遞至 AppConfigFile 參數。這個虛擬 App.Config 檔的每個衝突組件集合都有 bindingRedirect 項目,因此會選擇最新版本的組件。如此,將不會出現有關衝突組件的警告,因為每個衝突都已經獲得解決。每個不同的重新對應都會產生高優先權註解,指出新舊版本,並說明由於 AutoUnify 之前為 true,因此已自動完成這項工作。 如果為 false,就不會自動重新對應組件版本。當組件的兩個版本同時存在,將會出現警告。相同組件的兩個不同版本間的每個不同衝突,都會產生高優先權註解。在這些註解全部顯示之後,將會出現單一警告,其中含有唯一的錯誤碼以及說明「在參考和相依組件的不同版本之間發現衝突」的文字。 預設值是 false。 |
CandidateAssemblyFiles |
選擇性 String[] 參數。 指定搜尋和解析處理程序所要使用的組件清單。傳遞至這個參數的值必須是絕對檔名或是與專案相關的檔名。 當 SearchPaths 參數包含 {CandidateAssemblyFiles} 做為要考量的其中一個路徑時,就會考慮這個清單中的組件。 |
CopyLocalDependenciesWhenParentReferenceInGac |
選擇性 [Boolean] 參數。 如果為 true,表示要判斷是否應該在本機複製相依性,其中一項完成的檢查就是確認專案檔中的父參考是否已設定 Private 中繼資料。如果已設定,則會使用私用值做為相依性。 如果未設定該中繼資料,則會對相依性進行與父參考相同的檢查。其中一項檢查是確認參考是否位在 GAC 中。如果參考位在 GAC 中,則不會將之複製到本機,這是因為假設其位在目標電腦的 GAC 中。這只適用於該特定參考,而不適用於其相依性。 例如,位於 GAC 內之專案檔中的參考不會複製到本機,但是其相依性不在 GAC 中,因此會複製到本機。 如果為 false,則會檢查專案檔案參考以確認其是否位在 GAC 中,並且視需要將其複製到本機。 相依性會經過檢查以確認其是否位在 GAC 中,並確認專案檔中的父參考是否也位在 GAC 中。 如果專案檔中的父參考位在 GAC 中,則不會在本機複製相依性。 不論此參數為 true 或 false,如果有多個父參考,只要其中任何一個不在 GAC 中,就會將其全部複製到本機。 |
CopyLocalFiles |
選擇性的 ITaskItem[] 唯讀輸出參數。 傳回 ResolvedFiles、ResolvedDependencyFiles、RelatedFiles、SatelliteFiles 和 ScatterFiles 參數中的每個檔案,這些檔案具有值為 true 的 CopyLocal 項目中繼資料。 |
FilesWritten |
選擇性的 ITaskItem[] 輸出參數。 包含寫入磁碟的項目。 |
FindDependencies |
選擇性 Boolean 參數。 如果為 true,則會找到相依性。否則,只會找到主要參考。預設值是 true。 |
FindRelatedFiles |
選擇性 Boolean 參數。 如果為 true,將會找到 .pdb 檔和 .xml 檔之類的相關檔案。預設值是 true。 |
FindSatellites |
選擇性 Boolean 參數。 如果為 true,將會找到附屬組件。預設值為 true.。 |
FindSerializationAssemblies |
選擇性 Boolean 參數。 若為 true,此工作便會搜尋序列化 (Serialization) 組件。預設值是 true。 |
FullFrameworkAssemblyTables |
選擇性 ITaskItem[] 參數。 指定具有 "FrameworkDirectory" 中繼資料的項目,以便將可轉散發清單與特定 Framework 目錄產生關聯。如果未建立關聯,則將記錄錯誤。如果 FrameworkDirectory 未設定,則解析組件參考 (RAR) 邏輯會使用目標 Framework 目錄。 |
FullFrameworkFolders |
選擇性 [String][] 參數。 指定包含 RedistList 目錄的資料夾集合。此目錄表示特定用戶端設定檔的完整架構,例如 %programfiles%\reference assemblies\microsoft\framework\v4.0。 |
FullTargetFrameworkSubsetNames |
選擇性 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 的唯一值。 |
LatestTargetFrameworkDirectories |
選擇性 String[] 參數。 指定目錄的清單,這些目錄包含電腦上可做為目標之最新版 Framework 的可轉散發清單。如果未設定,則會使用特定目標 Framework 之電腦上所安裝的最高版本 Framework。 |
ProfileName |
選擇性 [String] 參數。
|
RelatedFiles |
選擇性的 ITaskItem[] 唯讀輸出參數。 包含 XML 和 .pdb 檔之類的相關檔案,這些檔案具有與參考相同的主檔名 (Base Name)。 這個參數中列出的檔案可選擇性包含下列項目中繼資料:
|
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 參數的值為何,都會包含每個不同衝突組件識別 (Identity) 的一個項目。其中包含每個文化特性 (Culture) 和找到的 PKT,該 PKT 在應用程式組態檔中並未具有適當的 bindingRedirect 項目。 每個項目都可選擇包含下列資訊:
|
TargetedRuntimeVersion |
選擇性 String 參數。 指定要做為目標的執行階段版本,例如 2.0.57027 或 v2.0.57027。 |
TargetFrameworkDirectories |
選擇性 String[] 參數。 指定目標架構目錄的路徑。這是用來判斷產生之項目的 CopyLocal 狀態所需的參數。 如果未指定這個參數,則產生的項目不會具有 true 的 CopyLocal 值,除非這些項目在其來源項目上明確具有 true 的 Private 中繼資料值。 |
TargetFrameworkMoniker |
選擇性 String 參數。 要監視的 TargetFrameworkMoniker (如果有的話)。這會用於進行記錄。 |
TargetFrameworkMonikerDisplayName |
選擇性 String 參數。 要監視的 TargetFrameworkMoniker 的顯示名稱 (如果有)。這會用於進行記錄。 |
TargetFrameworkSubsets |
選擇性 String[] 參數。 包含要在目標架構目錄中搜尋之目標架構子集名稱的清單。 |
TargetFrameworkVersion |
選擇性 String 參數。 專案目標架構的版本。預設值為空白,表示不根據目標架構來篩選參考。 |
TargetProcessorArchitecture |
選擇性 String 參數。 慣用的目標處理器架構。用於解析全域組件快取 (GAC) 參考。 這個參數可以具有 x86、IA64 或 AMD64 的值。 如果沒有這個參數,此工作會先考慮使用符合目前正在執行之處理序架構的組件。如果找不到組件,工作會考慮使用 GAC 中具有 MSIL 的 ProcessorArchitecture 值或不具有 ProcessorArchitecture 值的組件。 |
備註
除了以上列出的參數之外,此項工作還會繼承 TaskExtension 類別中的參數,而該類別本身又繼承 Task 類別。如需這些錯誤碼的清單及其說明,請參閱 TaskExtension 基底類別。