AL (組件連結器) 工作

AL 工作會包裝 AL.exe (這是一個隨 Windows 軟體開發套件 (SDK) 一起散發的工具)。 這個組件連結器工具可用來從一或多個屬於模組或資源檔的檔案中,建立包含資訊清單的組件。 編譯器和開發環境可能已經提供這些功能,因此通常不需直接使用此工作。 如果開發人員需要從多個元件檔案建立單一組件 (例如,可能是從混合式語言開發中產生的那些),則組件連結器就非常實用。 此工作不能將多個模組合併成單一組件檔案;您仍需依序散發和提供個別的模組,才能讓產生的組件正確載入。 如需 AL.exe 的詳細資訊,請參閱 Al.exe (組件連結器)

參數

下表說明 AL 工作的參數。

參數 描述
AlgorithmID 選擇性的 String 參數。

指定雜湊多檔案組件中所有檔案的演算法,但包含組件資訊清單的檔案除外。 如需詳細資訊,請參閱 Al.exe (組件連結器)/algid 選項的說明文件。
BaseAddress 選擇性的 String 參數。

指定在執行期間將 DLL 載入使用者電腦上的目標位址。 如果您指定 DLL 的基底位址,而不是讓作業系統重新找出處理序空間中的 DLL,應用程式載入的速度會更快。 此參數對應至 /baseaddress
CompanyName 選擇性的 String 參數。

為組件中的 [Company] 欄位指定字串。 如需詳細資訊,請參閱 Al.exe (組件連結器)/comp[any] 選項的說明文件。
Configuration 選擇性的 String 參數。

為組件中的 [Configuration] 欄位指定字串。 如需詳細資訊,請參閱 Al.exe (組件連結器)/config[uration] 選項的說明文件。
Copyright 選擇性的 String 參數。

為組件中的 [Copyright] 欄位指定字串。 如需詳細資訊,請參閱 Al.exe (組件連結器)/copy[right] 選項的說明文件。
Culture 選擇性的 String 參數。

指定與組件相關聯的文化特性字串。 如需詳細資訊,請參閱 Al.exe (組件連結器)/c[ulture] 選項的說明文件。
DelaySign 選擇性的 Boolean 參數。

如果是 true,只會在組件中放置公開金鑰;如果是 false,即會完整簽署組件。 如需詳細資訊,請參閱 Al.exe (組件連結器)/delay[sign] 選項的說明文件。
Description 選擇性的 String 參數。

為組件中的 [Description] 欄位指定字串。 如需詳細資訊,請參閱 Al.exe (組件連結器)/descr[iption] 選項的說明文件。
EmbedResources 選擇性的 ITaskItem[] 參數。

在含有組件資訊清單的映像中嵌入指定的資源。 此工作會將資源檔的內容複製到映像。 傳遞給這個參數的項目可能具有已附加到它們的選擇性中繼資料,稱為 LogicalNameAccessLogicalName 中繼資料可用來指定資源的內部識別項。 您可以將 Access 中繼資料設為 private,以便讓其他組件無法看見資源。 如需詳細資訊,請參閱 Al.exe (組件連結器)/embed[resource] 選項的說明文件。
EvidenceFile 選擇性的 String 參數。

使用 Security.Evidence 的資源名稱,將指定的檔案嵌入組件中。

Security.Evidence 無法用於一般資源。 此參數對應到 Al.exe (組件連結器) 中的 /e[vidence] 選項。
ExitCode 選擇性 Int32 輸出唯讀參數。

指定已執行命令提供的結束代碼。
FileVersion 選擇性的 String 參數。

為組件中的 [File Version] 欄位指定字串。 如需詳細資訊,請參閱 Al.exe (組件連結器)/fileversion 選項的說明文件。
Flags 選擇性的 String 參數。

為組件中的 [Flags] 欄位指定值。 如需詳細資訊,請參閱 Al.exe (組件連結器)/flags 選項的說明文件。
GenerateFullPaths 選擇性的 Boolean 參數。

讓工作使用錯誤訊息中所報告之任何檔案的絕對路徑。 此參數對應到 Al.exe (組件連結器) 中的 /fullpaths 選項。
KeyContainer 選擇性的 String 參數。

指定保留金鑰組的容器。 這樣會藉由將公開金鑰插入組件資訊清單中的方式簽署組件 (為它指定強式名稱)。 工作接著將使用私密金鑰來簽署最終組件。 如需詳細資訊,請參閱 Al.exe (組件連結器)/keyn[ame] 選項的說明文件。
KeyFile 選擇性的 String 參數。

指定包含金鑰組或只有公開金鑰的檔案以簽署組件。 編譯器會將公開金鑰插入組件資訊清單中,然後使用私密金鑰簽署最終組件。 如需詳細資訊,請參閱 Al.exe (組件連結器)/keyf[ile] 選項的說明文件。
LinkResources 選擇性的 ITaskItem[] 參數。

將指定的資源檔連結至組件。 資源會變成組件的一部分,但不會複製檔案。 傳遞給這個參數的項目可能具有已附加到它們的選擇性中繼資料,稱為 LogicalNameTargetAccessLogicalName 中繼資料可用來指定資源的內部識別項。 Target 中繼資料可以指定工作要將檔案複製到其中的路徑和檔案名稱,之後它會將這個新檔案編譯成組件。 您可以將 Access 中繼資料設為 private,以便讓其他組件無法看見資源。 如需詳細資訊,請參閱 Al.exe (組件連結器)/link[resource] 選項的說明文件。
MainEntryPoint 選擇性的 String 參數。

指定將模組轉換成可執行檔時,用來作為進入點之方法的完整名稱 (class.method)。 此參數對應到 Al.exe (組件連結器) 中的 /main 選項。
OutputAssembly 必要的 ITaskItem 輸出參數。

指定此工作產生的檔案名稱。 此參數對應到 Al.exe (組件連結器) 中的 /out 選項。
Platform 選擇性的 String 參數。

限制可以執行這個程式碼的平台,這個平台必須為下列其中之一:x86Itaniumx64anycpu。 預設值為 anycpu。 此參數對應到 Al.exe (組件連結器) 中的 /platform 選項。
ProductName 選擇性的 String 參數。

為組件中的 [Product] 欄位指定字串。 如需詳細資訊,請參閱 Al.exe (組件連結器)/prod[uct] 選項的說明文件。
ProductVersion 選擇性的 String 參數。

為組件中的 [ProductVersion] 欄位指定字串。 如需詳細資訊,請參閱 Al.exe (組件連結器)/productv[ersion] 選項的說明文件。
ResponseFiles 選擇性的 String[] 參數。

指定包含要傳遞至組件連結器之其他選項的回應檔。
SdkToolsPath 選擇性的 String 參數。

指定 SDK 工具 (例如 resgen.exe) 的路徑。
SourceModules 選擇性的 ITaskItem[] 參數。

一或多個要編譯到組件的模組。 模組將列在所產生組件的資訊清單中,且仍需依序散發和提供,才能載入組件。 傳遞到此參數的項目可能具有名為 Target 的其他中繼資料,以指定工作要將檔案複製到其中的路徑和檔案名稱,之後它會將這個新檔案編譯成組件。 如需詳細資訊,請參閱 Al.exe (組件連結器) 的說明文件。 此參數 (Parameter) 對應到傳遞至 Al.exe 的模組清單,但不含特定參數 (Switch)。
TargetType 選擇性的 String 參數。

指定輸出檔的檔案格式:library (程式碼程式庫)、exe (主控台應用程式) 或 win (Windows 應用程式)。 預設值為 library。 此參數對應到 Al.exe (組件連結器) 中的 /t[arget] 選項。
TemplateFile 選擇性的 String 參數。

指定要從其中繼承所有組件中繼資料的組件,但不包括 [文化特性] 欄位。 指定的組件必須具有強式名稱。

使用 TemplateFile 參數建立的組件會是附屬組件。 此參數對應到 Al.exe (組件連結器) 中的 /template 選項。
Timeout 選擇性的 Int32 參數。

指定時間量 (以毫秒為單位),在此時間量之後會終止工作可執行檔。 預設值是 Int.MaxValue,表示沒有逾時期間。
Title 選擇性的 String 參數。

為組件中的 [Title] 欄位指定字串。 如需詳細資訊,請參閱 Al.exe (組件連結器)/title 選項的說明文件。
ToolPath 選擇性的 String 參數。

指定位置,工作會從該位置載入基礎可執行檔 (Al.exe)。 如果未指定這個參數,此工作會使用 SDK 安裝路徑,此路徑對應到執行 MSBuild 之架構的版本。
Trademark 選擇性的 String 參數。

為組件中的 [Trademark] 欄位指定字串。 如需詳細資訊,請參閱 Al.exe (組件連結器)/trade[mark] 選項的說明文件。
Version 選擇性的 String 參數。

指定這個組件的版本資訊。 字串格式是 major.minor.build.revision。 預設值是 0。 如需詳細資訊,請參閱 Al.exe (組件連結器)/v[ersion] 選項的說明文件。
Win32Icon 選擇性的 String 參數。

.ico 檔案插入組件中。 .ico 檔案會讓輸出檔案在檔案總管中以所要的外觀顯示。 此參數對應到 Al.exe (組件連結器) 中的 /win32icon 選項。
Win32Resource 選擇性的 String 參數。

將 Win32 資源 (.res 檔案) 插入輸出檔案中。 如需詳細資訊,請參閱 Al.exe (組件連結器)/win32res 選項的說明文件。

ToolTaskExtension 參數

此工作繼承自 ToolTaskExtension 類別,該類別繼承自 ToolTask 類別,而其本身繼承自 Task 類別。 此繼承鏈結將數個參數加入至從它們衍生的工作。

下表說明基底類別的參數:

參數 描述
EchoOff 選擇性的 bool 參數。

當設定為 true 時,此工作會將 /Q 傳遞至 cmd.exe 命令列,使命令列不會被複製到 stdout。
EnvironmentVariables 選擇性 String 陣列參數。

環境變數定義的陣列 (以分號分隔)。 每個定義都應該指定以等號分隔的環境變數名稱和值。 這些變數是在規則環境區塊以外傳遞至繁衍的可執行檔,或選擇性地覆寫。 例如: Variable1=Value1;Variable2=Value2
ExitCode 選擇性 Int32 輸出唯讀參數。

指定已執行命令提供的結束代碼。 如果工作已記錄任何錯誤,但是此程序具有結束代碼 0 (成功),這會設為 -1。
LogStandardErrorAsError 選擇性的 bool 參數。

如果為 true,則標準錯誤資料流上收到的所有訊息都會記錄為錯誤。
StandardErrorImportance 選擇性的 String 參數。

用來從標準錯誤資料流記錄文字的重要性。
StandardOutputImportance 選擇性的 String 參數。

用來從標準輸出資料流記錄文字的重要性。
Timeout 選擇性的 Int32 參數。

指定時間量 (以毫秒為單位),在此時間量之後會終止工作可執行檔。 預設值是 Int.MaxValue,表示沒有逾時期間。 逾時是以毫秒為單位。
ToolExe 選擇性的 string 參數。

專案可能會實作此項目以覆寫 ToolName。 工作可能會覆寫此項目以保留 ToolName。
ToolPath 選擇性的 string 參數。

指定位置,工作會從該位置載入基礎可執行檔。 如果未指定這個參數,工作會使用 SDK 安裝路徑,對應於執行 MSBuild 的架構版本。
UseCommandProcessor 選擇性的 bool 參數。

當設為 true 時,這項工作會針對命令列建立批次檔,並且使用命令處理器來執行,而不是直接執行命令。
YieldDuringToolExecution 選擇性的 bool 參數。

當設為 true 時,這項工作在執行其工作時,會產生節點。

範例

下列範例會使用指定的選項來建立組件。

<AL
    EmbedResources="@(EmbeddedResource)"
    Culture="%(EmbeddedResource.Culture)"
    TemplateFile="@(IntermediateAssembly)"
    KeyContainer="$(KeyContainerName)"
    KeyFile="$(KeyOriginatorFile)"
    DelaySign="$(DelaySign)"

    OutputAssembly=
       "%(EmbeddedResource.Culture)\$(TargetName).resources.dll">

    <Output TaskParameter="OutputAssembly"
        ItemName="SatelliteAssemblies"/>
</AL>

另請參閱