共用方式為


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,每個不同的重新對應都會產生高優先權註解,顯示新舊版本,並指出 AutoUnifytrue

如果為 true,則 AppConfigFile 參數必須是空白。

如果為 false,就不會自動重新對應組件版本。 當組件的兩個版本同時存在,將會發出警告。

如果為 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 一般。

    搭配參考項目類型使用時,Include 屬性必須是組件的完整融合名稱才能解析。 唯有融合完全符合 Include 屬性時,才會解析組件。

    當專案以某個 .NET Framework 版本為目標,並參考為較高的 .NET Framework 版本編譯的組件時,只有將 SpecificVersion 設定為 true,參考才會解析。

    當專案以設定檔為目標,並參考不在設定檔中的組件時,只有將 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} 做為要考量的其中一個路徑時,就會考慮這個清單中的組件。

CopyLocalDependenciesWhenParentReferenceInGac

選擇性 [Boolean] 參數。

如果為 true,表示要判斷是否應該在本機複製相依性,其中一項完成的檢查就是確認專案檔中的父參考是否已設定 Private 中繼資料。 如果已設定,則會使用私用值做為相依性。

如果未設定該中繼資料,則會對相依性進行與父參考相同的檢查。 其中一項檢查是確認參考是否位在 GAC 中。 如果參考位在 GAC 中,則不會將之複製到本機,這是因為假設其位在目標電腦的 GAC 中。 這只適用於該特定參考,而不適用於其相依性。

例如,位於 GAC 內之專案檔中的參考不會複製到本機,但是其相依性不在 GAC 中,因此會複製到本機。

如果為 false,則會檢查專案檔案參考以確認其是否位在 GAC 中,並且視需要將其複製到本機。

相依性會經過檢查以確認其是否位在 GAC 中,並確認專案檔中的父參考是否也位在 GAC 中。

如果專案檔中的父參考位在 GAC 中,則不會在本機複製相依性。

不論此參數為 true 或 false,如果有多個父參考,只要其中任何一個不在 GAC 中,就會將其全部複製到本機。

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。

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] 參數。

  • 指定要做為目標之 Framework 設定檔的名稱。 例如,用戶端、Web 或網路。

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 值視為正確的路徑和檔名。

SerializationAssemblyFiles

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

包含找到的任何 XML 序列化組件。 只有在使項目得以存在的參考或相依性為 CopyLocal=true 時,才會將這些項目標記為 CopyLocal=true。

Boolean 中繼資料 CopyLocal 會指出特定參考是否應複製到輸出目錄。

Silent

選擇性 Boolean 參數。

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

StateFile

選擇性 String 參數。

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

SuggestedRedirects

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

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

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

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

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

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) 參考。

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

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

備註

除了以上列出的參數之外,此項工作還會繼承 TaskExtension 類別中的參數,而該類別本身又繼承 Task 類別。 如需這些錯誤碼的清單及其說明,請參閱 TaskExtension 基底類別

請參閱

概念

MSBuild 工作

其他資源

MSBuild 工作參考