Tarefa AL (Assembly Linker)

A tarefa AL encapsula AL.exe, uma ferramenta distribuída com o SDK (Kit de Desenvolvimento de Software) do Windows. Essa ferramenta, o Assembly Linker, é usada para criar um assembly com um manifesto com base em um ou mais arquivos que são arquivos de recurso ou módulos. Compiladores e ambientes de desenvolvimento talvez já forneçam essas funcionalidades, então muitas vezes não é necessário usar essa tarefa diretamente. O Assembly Linker é mais útil para os desenvolvedores que precisam criar um único assembly com base em vários arquivos de componente, como aqueles que podem ser produzidos via desenvolvimento de linguagens mistas. Essa tarefa não combina os módulos em um único arquivo do assembly; os módulos individuais ainda deverão ser distribuídos e estar disponíveis para que o assembly resultante carregue corretamente. Para obter mais informações sobre o AL.exe, confira Al.exe (Assembly Linker).

Parâmetros

A tabela a seguir descreve os parâmetros da tarefa AL.

Parâmetro Descrição
AlgorithmID Parâmetro String opcional.

Especifica um algoritmo hash para todos os arquivos em um assembly multiarquivo, exceto o arquivo que contém o manifesto de assembly. Para obter mais informações, consulte a documentação da opção /algid em Al.exe (Assembly Linker).
BaseAddress Parâmetro String opcional.

Especifica o endereço no qual uma DLL será carregada no computador do usuário no tempo de execução. Os aplicativos serão carregados mais rapidamente se você especificar o endereço básico das DLLs, em vez de deixar o sistema operacional realocar as DLLs no espaço de processo. Esse parâmetro corresponde à opção /baseendereço.
CompanyName Parâmetro String opcional.

Especifica uma cadeia de caracteres para o campo Company no assembly. Para obter mais informações, consulte a documentação da opção /comp[any] em Al.exe (Assembly Linker).
Configuration Parâmetro String opcional.

Especifica uma cadeia de caracteres para o campo Configuration no assembly. Para obter mais informações, consulte a documentação da opção /config[uration] em Al.exe (Assembly Linker).
Copyright Parâmetro String opcional.

Especifica uma cadeia de caracteres para o campo Copyright no assembly. Para obter mais informações, consulte a documentação da opção /copy[right] em Al.exe (Assembly Linker).
Culture Parâmetro String opcional.

Especifica a cadeia de caracteres de cultura a ser associada ao assembly. Para obter mais informações, consulte a documentação da opção /c[ulture] em Al.exe (Assembly Linker).
DelaySign Parâmetro Boolean opcional.

true para inserir apenas a chave pública no assembly. false para assinar totalmente o assembly. Para obter mais informações, consulte a documentação da opção /delay[sign] em Al.exe (Assembly Linker).
Description Parâmetro String opcional.

Especifica uma cadeia de caracteres para o campo Description no assembly. Para obter mais informações, consulte a documentação da opção /descr[iption] em Al.exe (Assembly Linker).
EmbedResources Parâmetro opcional ITaskItem[].

Incorpora os recursos especificados na imagem que contém o manifesto do assembly. Essa tarefa copia o conteúdo do arquivo de recurso para a imagem. Os itens passados para esse parâmetro podem ter metadados opcionais chamados LogicalName e Access anexados a eles. Os metadados LogicalName são usados para especificar o identificador interno do recurso. Os metadados Access podem ser definidos como private para tornar o recurso não visível para outros assemblies. Para obter mais informações, consulte a documentação da opção /embed[resource] em Al.exe (Assembly Linker).
EvidenceFile Parâmetro String opcional.

Insere o arquivo especificado no assembly com o nome do recurso de Security.Evidence.

Não é possível usar Security.Evidence para recursos comuns. Esse parâmetro corresponde à opção /e[vidence] em Al.exe (Assembly Linker).
ExitCode Parâmetro de saída opcional somente leitura Int32.

Especifica o código de saída fornecido pelo comando executado.
FileVersion Parâmetro String opcional.

Especifica uma cadeia de caracteres para o campo File Version no assembly. Para obter mais informações, consulte a documentação da opção /fileversion em Al.exe (Assembly Linker).
Flags Parâmetro String opcional.

Especifica um valor para o campo Flags no assembly. Para obter mais informações, consulte a documentação da opção /flags em Al.exe (Assembly Linker).
GenerateFullPaths Parâmetro Boolean opcional.

Faz com que a tarefa use o caminho absoluto para todos os arquivos reportados em uma mensagem de erro. Esse parâmetro corresponde à opção /fullpaths em Al.exe (Assembly Linker).
KeyContainer Parâmetro String opcional.

Especifica um contêiner que mantém um par de chaves. Isso assinará o assembly (recebe um nome forte) inserindo uma chave pública no manifesto do assembly. A tarefa assinará então o assembly final com a chave privada. Para obter mais informações, consulte a documentação da opção /keyn[ame] em Al.exe (Assembly Linker).
KeyFile Parâmetro String opcional.

Especifica um arquivo que contém um par de chaves ou apenas uma chave pública para assinar um assembly. O compilador insere a chave pública no manifesto do assembly e, em seguida, assina o assembly final com a chave privada. Para obter mais informações, consulte a documentação da opção /keyf[ile] em Al.exe (Assembly Linker).
LinkResources Parâmetro opcional ITaskItem[].

Vincula os arquivos de recurso especificados a este assembly. O recurso torna-se parte do assembly, mas o arquivo não é copiado. Os itens passados para esse parâmetro podem ter metadados opcionais chamados LogicalName, Target e Access anexados a eles. Os metadados LogicalName são usados para especificar o identificador interno do recurso. Os metadados Target podem especificar o caminho e o nome do arquivo para o qual a tarefa copia o arquivo, antes de compilá-lo para dentro do assembly. Os metadados Access podem ser definidos como private para tornar o recurso não visível para outros assemblies. Para obter mais informações, consulte a documentação da opção /link[resource] em Al.exe (Assembly Linker).
MainEntryPoint Parâmetro String opcional.

Especifica o nome totalmente qualificado (class.method) do método a ser usado como um ponto de entrada durante a conversão de um módulo em um arquivo executável. Esse parâmetro corresponde à opção /main em Al.exe (Assembly Linker).
OutputAssembly Parâmetro de saída ITaskItem necessário.

Especifica o nome do arquivo gerado por essa tarefa. Esse parâmetro corresponde à opção /out em Al.exe (Assembly Linker).
Platform Parâmetro String opcional.

Limita as plataformas em que este código pode ser executado; deve ser uma entre x86, Itanium, x64 e anycpu. O padrão é anycpu. Esse parâmetro corresponde à opção /platform em Al.exe (Assembly Linker).
ProductName Parâmetro String opcional.

Especifica uma cadeia de caracteres para o campo Product no assembly. Para obter mais informações, consulte a documentação da opção /prod[uct] em Al.exe (Assembly Linker).
ProductVersion Parâmetro String opcional.

Especifica uma cadeia de caracteres para o campo ProductVersion no assembly. Para obter mais informações, consulte a documentação da opção /productv[ersion] em Al.exe (Assembly Linker).
ResponseFiles Parâmetro String[] opcional.

Especifica os arquivos de resposta que contêm opções adicionais para passar para o vinculador de Assembly.
SdkToolsPath Parâmetro String opcional.

Especifica o caminho para as ferramentas do SDK, por exemplo, resgen.exe.
SourceModules Parâmetro opcional ITaskItem[].

Um ou mais módulos para serem compilados em um assembly. Os módulos serão listados no manifesto do assembly resultante e ainda precisarão ser distribuídos e estar disponíveis para que o assembly seja carregado. Os itens passados para esse parâmetro podem ter metadados adicionais chamados Target, que especificam o caminho e o nome do arquivo para o qual a tarefa copia o arquivo, antes de compilá-lo para dentro do assembly. Para obter mais informações, consulte a documentação de Al.exe (Assembly Linker). Esse parâmetro corresponde à lista de módulos passados em Al.exe sem uma opção específica.
TargetType Parâmetro String opcional.

Especifica o formato do arquivo de saída: library (biblioteca de códigos), exe (aplicativo de console) ou win (aplicativo com base no Windows). O padrão é library. Esse parâmetro corresponde à opção /t[arget] em Al.exe (Assembly Linker).
TemplateFile Parâmetro String opcional.

Especifica o assembly do qual todos os metadados de assembly devem ser herdados, exceto o campo de cultura. O assembly especificado deve ter um nome forte.

Um assembly criado com o parâmetro TemplateFile será um assembly satélite. Esse parâmetro corresponde à opção /template em Al.exe (Assembly Linker).
Timeout Parâmetro Int32 opcional.

Especifica a quantidade de tempo em milissegundos após o qual o executável da tarefa é encerrado. O valor padrão é Int.MaxValue, indicando que não há período de tempo limite.
Title Parâmetro String opcional.

Especifica uma cadeia de caracteres para o campo Title no assembly. Para obter mais informações, consulte a documentação da opção /title em Al.exe (Assembly Linker).
ToolPath Parâmetro String opcional.

Especifica o local do qual a tarefa carregará o arquivo executável subjacente (Al.exe). Se esse parâmetro não for especificado, a tarefa usará o caminho de instalação do SDK correspondente à versão da estrutura que está executando o MSBuild.
Trademark Parâmetro String opcional.

Especifica uma cadeia de caracteres para o campo Trademark no assembly. Para obter mais informações, consulte a documentação da opção /trade[mark] em Al.exe (Assembly Linker).
Version Parâmetro String opcional.

Especifica informações de versão desse assembly. O formato da cadeia de caracteres é principal.secundária.build.revisão. O valor padrão é 0. Para obter mais informações, consulte a documentação da opção /v[ersion] em Al.exe (Assembly Linker).
Win32Icon Parâmetro String opcional.

Insere um arquivo .ico no assembly. O arquivo .ico dá ao arquivo de saída a aparência desejada no Explorador de Arquivos. Esse parâmetro corresponde à opção /win32icon em Al.exe (Assembly Linker).
Win32Resource Parâmetro String opcional.

Insere um recurso do Win32 (arquivo .res) no arquivo de saída. Para obter mais informações, consulte a documentação da opção /win32res em Al.exe (Assembly Linker).

Parâmetros de ToolTaskExtension

Essa tarefa herda da classe ToolTaskExtension, que herda da classe ToolTask, que por sua vez herda da classe Task. Esta cadeia de herança adiciona vários parâmetros nas tarefas que derivam deles.

A seguinte tabela descreve os parâmetros das classes base:

Parâmetro Descrição
EchoOff Parâmetro bool opcional.

Quando definido como true, essa tarefa passa /Q para a linha de comando de cmd.exe, de modo que a linha de comando não é copiada para stdout.
EnvironmentVariables Parâmetro de matriz String opcional.

Matriz de definições da variável de ambiente, separadas por ponto e vírgula. Cada definição deve especificar um nome da variável de ambiente e um valor separados por um sinal de igual. Essas variáveis são passadas para o executável gerado além, ou seletivamente substituindo, o bloco de ambiente regular. Por exemplo, Variable1=Value1;Variable2=Value2.
ExitCode Parâmetro de saída opcional somente leitura Int32.

Especifica o código de saída fornecido pelo comando executado. Se a tarefa registra erros, mas o processo tem um código de saída de 0 (êxito), isso é definido como -1.
LogStandardErrorAsError Parâmetro bool opcional.

Se true, todas as mensagens recebidas no fluxo de erro padrão são registradas como erros.
StandardErrorImportance Parâmetro String opcional.

a importância com a qual o texto do fluxo de erro padrão deve ser registrado.
StandardOutputImportance Parâmetro String opcional.

Importância para fazer o texto de log do fluxo de saída do padrão.
Timeout Parâmetro Int32 opcional.

Especifica a quantidade de tempo em milissegundos após o qual o executável da tarefa é encerrado. O valor padrão é Int.MaxValue, indicando que não há período de tempo limite. O tempo limite está em milissegundos.
ToolExe Parâmetro string opcional.

Projetos podem implementar para substituir um ToolName. Tarefas podem substituir isso para preservar o ToolName.
ToolPath Parâmetro string opcional.

Especifica o local de onde a tarefa carrega o arquivo executável subjacente. Se esse parâmetro não for especificado, a tarefa usará o caminho de instalação do SDK correspondente à versão da estrutura que está executando o MSBuild.
UseCommandProcessor Parâmetro bool opcional.

Quando definido como true, essa tarefa cria um arquivo em lotes para a linha de comando e o executa usando o processador de comando em vez de executar o comando diretamente.
YieldDuringToolExecution Parâmetro bool opcional.

Quando definido como true, essa tarefa gera o nó quando a tarefa está em execução.

Exemplo

O exemplo a seguir cria um assembly com as opções especificadas.

<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>

Confira também