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 基底類別。