Al.exe (Assembly Linker)

O Assembly Linker gera um arquivo que tem um manifesto de assembly de um ou mais arquivos que são módulos ou arquivos de recursos. Um módulo é um arquivo de linguagem intermediária (IL) que não tem um manifesto de assembly.

Nota

A partir do Visual Studio 2008, os compiladores C# e Visual Basic incorporam automaticamente um manifesto Win32 no assembly. Para obter mais informações, consulte -win32manifest (Opções do compilador C#).

Esta ferramenta é instalada automaticamente com o Visual Studio. Para executar a ferramenta, use o Visual Studio Developer Command Prompt ou o Visual Studio Developer PowerShell.

Na linha de comandos, escreva o seguinte:

Sintaxe

al sources options

Parâmetros

Você pode especificar um ou mais dos seguintes sources.

Origem Description
file[,target] Copia o conteúdo de (um módulo) para o nome de file arquivo especificado por target. Depois de copiar, Al.exe compila target em um assembly.
/embed[recurso]:file[,name[,private]] Incorpora o recurso especificado por file na imagem que contém o manifesto do assembly; Al.exe copia o conteúdo do file para a imagem executável portátil (PE).

O name parâmetro é um identificador interno para o recurso. Por padrão, os recursos são públicos no assembly (visível para outros assemblies). A especificação private torna o recurso não visível para outros assemblies.

Se file for um arquivo de recurso do .NET Framework criado, por exemplo, pelo Resource File Generator (Resgen.exe) ou no ambiente de desenvolvimento, ele pode ser acessado com membros no System.Resources. Para obter mais informações, veja ResourceManager. Para todos os outros recursos, use os GetManifestResource* métodos no Assembly para acessar o recurso em tempo de execução.

Se apenas arquivos de recursos forem passados para Al.exe, o arquivo de saída será um assembly de recursos satélite.
/link[recurso]:file[,name[,target[,private]]] Vincula um arquivo de recurso a um assembly. O recurso especificado por file torna-se parte do assembly, o arquivo não é copiado. O file parâmetro pode estar em qualquer formato de arquivo. Por exemplo, você pode especificar uma DLL nativa como o file parâmetro. Isso tornará a DLL nativa parte do assembly para que ele possa ser instalado no cache de assembly global e acessado a partir do código gerenciado no assembly. Você também pode fazer isso usando a opção de compilador /linkresource . Para obter mais informações, consulte -linkresource (C# Compiler Options).

O name parâmetro é um identificador interno para o recurso. O target parâmetro especifica um caminho e um nome de arquivo para o qual Al.exe copia o filearquivo . Depois de copiar, Al.exe compila target em um assembly. Por padrão, os recursos são públicos no assembly (visível para outros assemblies). A especificação private torna o recurso não visível para outros assemblies.

Se file for um arquivo de recurso do .NET Framework criado, por exemplo, pelo Resource File Generator (Resgen.exe) ou no ambiente de desenvolvimento, ele pode ser acessado System.Resources com membros no namespace. Para obter mais informações, veja ResourceManager. Para todos os outros recursos, use os GetManifestResource*Assembly métodos na classe para acessar o recurso em tempo de execução.

Se apenas arquivos de recursos forem passados para Al.exe, o arquivo de saída será um assembly de recursos satélite.

Você pode especificar o seguinte options: você deve especificar /out.

Opção Description
/algida:id Especifica um algoritmo para hash de todos os arquivos em um assembly de vários arquivos, exceto o arquivo que contém o manifesto do assembly. O algoritmo padrão é CALG_SHA1. Consulte ALG_ID na documentação do Platform SDK para obter outros algoritmos. Para a primeira versão do .NET Framework, apenas CALG_SHA1 e CALG_MD5 são válidos.

Os valores de hash são armazenados na tabela de arquivo do manifesto do assembly. Na instalação e no tempo de carregamento, os arquivos do assembly são verificados em relação aos seus hashes.

Você também pode especificar essa opção como um atributo personalizado (AssemblyAlgorithmIdAttribute) no código-fonte de qualquer módulo.
/base[endereço]:addr Especifica o endereço no qual uma DLL será carregada no computador do usuário em tempo de execução. Os aplicativos carregam mais rápido se você especificar o endereço base das DLLs, em vez de permitir que o sistema operacional realoque as DLLs no espaço de processo.
/relatório de erros: filename Cria um arquivo (filename) que contém informações para relatar bugs.
/comp[qualquer]:text Especifica uma cadeia de caracteres para o campo Empresa no assembly. Coloque a cadeia de caracteres entre aspas duplas (" ") se text contiver um espaço. Essa cadeia de caracteres é um atributo personalizado no assembly e está disponível para visualização com reflexão.

Se você não especificar /win32res, text aparecerá no Explorador de Arquivos como a Company propriedade do arquivo. Se você especificar /win32res, as informações da empresa no arquivo de recurso especificado aparecerão como a propriedade no Explorador de Company Arquivos.

Se o texto for uma cadeia de caracteres vazia (""), o recurso Win32 Company aparecerá como um único espaço.

Se você especificar /win32res, /company não afetará as informações de recurso do Win32.

Você também pode especificar essa opção como um atributo personalizado (AssemblyCompanyAttribute) no código-fonte de qualquer módulo CIL.
/config[uration]:text Especifica uma cadeia de caracteres para o campo Configuração no assembly. Coloque a cadeia de caracteres entre aspas duplas (" ") se text contiver um espaço. Essa cadeia de caracteres é um atributo personalizado no assembly e está disponível para visualização com reflexão.

Se o texto for uma cadeia de caracteres vazia, o recurso de configuração do Win32 aparecerá como um único espaço.

Você também pode especificar essa opção como um atributo personalizado (AssemblyConfigurationAttribute) no código-fonte de qualquer módulo CIL.
/copy[direita]:text Especifica uma cadeia de caracteres para o campo Copyright no assembly. Coloque a cadeia de caracteres entre aspas duplas (" ") se text contiver um espaço. Essa cadeia de caracteres é um atributo personalizado no assembly e está disponível para visualização com reflexão.

Se você não especificar /win32res, /copyright aparecerá no Explorador de Arquivos como o recurso Win32 Copyright.

Se o texto for uma cadeia de caracteres vazia, o recurso Win32 Copyright aparecerá como um único espaço.

Se você especificar /win32res, /copyright não afetará as informações de recurso do Win32.

Você também pode especificar essa opção como um atributo personalizado (AssemblyCopyrightAttribute) no código-fonte de qualquer módulo CIL.
/c[ulture]:text Especifica a cadeia de caracteres de cultura a ser associada ao assembly. Os valores válidos para culturas são aqueles definidos pelo documento 1766 do Internet Requests for Comments (RFC) intitulado "Tags for the Identification of Languages".

Coloque a cadeia de caracteres entre aspas duplas (" ") se text contiver um espaço. Não há nenhuma cadeia de caracteres de cultura padrão. Esta cadeia de caracteres está disponível para visualização com reflexão.

Para obter informações sobre cadeias de caracteres válidas text , consulte o CultureInfo.

Você também pode especificar essa opção como um atributo personalizado (AssemblyCultureAttribute) no código-fonte de qualquer módulo CIL.
/delay[sign][+ or -] Especifica se o assembly será total ou parcialmente assinado. Use /delaysign- se quiser um assembly totalmente assinado. Use /delaysign+ se quiser incluir apenas a chave pública no assembly.

Quando você solicita um assembly totalmente assinado, Al.exe hashes o arquivo que contém o manifesto (metadados do assembly) e assina esse hash com a chave privada. A assinatura digital resultante é armazenada no arquivo que contém o manifesto. Quando um assembly é assinado com atraso, Al.exe não calcula e armazena a assinatura, mas apenas reserva espaço no arquivo para que a assinatura possa ser adicionada posteriormente.

O padrão é /delaysign-.

A opção /delaysign não tem efeito a menos que seja usada com /keyfile ou /keyname.

Por exemplo, usar /delaysign+ permite que um testador coloque o assembly no cache global. Após o teste, você pode assinar totalmente o assembly incluindo a chave privada no assembly.

Nota: Antes de usar o Gacutil.exe (Global Assembly Cache Tool) para colocar um assembly assinado com atraso no cache global, use o Sn.exe (Strong Name Tool) para registrar o assembly para verificação ignorando. Por exemplo, Sn.exe –Vr delaySignedAssembly. Use isso apenas para desenvolvimento.

Você também pode especificar essa opção como um atributo personalizado (AssemblyDelaySignAttribute) no código-fonte de qualquer módulo CIL.
/descr[iption]:text Especifica uma cadeia de caracteres para o Description campo no assembly. Coloque a cadeia de caracteres entre aspas duplas (" ") se text contiver um espaço. Essa cadeia de caracteres é um atributo personalizado no assembly e está disponível para visualização com reflexão.

Se você não especificar /win32res, /description aparecerá no Explorador de Arquivos como o recurso Comentários do Win32.

Se o texto for uma cadeia de caracteres vazia, o recurso Comentários do Win32 aparecerá como um único espaço.

Se você especificar /win32res, /description não afetará as informações do recurso Win32.

Você também pode especificar essa opção como um atributo personalizado (Description) no código-fonte de qualquer módulo CIL.
/e[vidência]:file Incorpora file na montagem com o nome do recurso Security.Evidence.

Não é possível usar Security.Evidence para recursos regulares.
/fileversion:version Especifica uma cadeia de caracteres para o campo Versão do arquivo no assembly. Essa cadeia de caracteres é um atributo personalizado no assembly e está disponível para visualização com reflexão.

Se você não especificar /win32res, /fileversion será usado como o recurso Win32 File Version . Se você não especificar /fileversion, o recurso Win32 File Version será preenchido pelo recurso Win32 Assembly Version.

Se /win32res for especificado, /fileversion não afetará o recurso Win32.

Você também pode especificar essa opção como um atributo personalizado (AssemblyFileVersionAttribute) no código-fonte de qualquer módulo CIL.
/bandeiras:flags Especifica um valor para o Flags campo no assembly. Valores possíveis para flags:

0x0000
O conjunto é compatível lado a lado.

0x0010
O assembly não pode ser executado com outras versões se elas estiverem sendo executadas no mesmo domínio do aplicativo.

0x0020
O assembly não pode ser executado com outras versões se elas estiverem sendo executadas no mesmo processo.

0x0030
O assembly não pode ser executado com outras versões se eles estiverem sendo executados no mesmo computador.

Você também pode especificar essa opção como um atributo personalizado (AssemblyFlagsAttribute) no código-fonte de qualquer módulo CIL.
/caminhos completos Faz com que Al.exe use o caminho absoluto para todos os arquivos que são relatados em uma mensagem de erro.
/Ajuda Exibe a sintaxe do comando e as opções da ferramenta.
/keyf[ile]:filename Especifica um arquivo (filename) 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. Consulte a Ferramenta de Nome Forte (Sn.exe) para obter informações sobre como gerar arquivos de chave e instalar pares de chaves em contêineres de chaves.

Se você estiver usando a assinatura atrasada, esse arquivo geralmente terá a chave pública, mas não a chave privada.

As informações de chave pública (do par de chaves) aparecem no campo .publickey do assembly.

Você também pode especificar essa opção como um atributo personalizado (AssemblyKeyFileAttribute) no código-fonte de qualquer módulo CIL.

Se / keyfile e /keyname forem especificados (por opção de linha de comando ou por atributo personalizado) na mesma compilação, Al.exe tentará primeiro o contêiner especificado com /keyname. Se isso for bem-sucedido, o assembly será assinado com as informações no contêiner de chaves. Se Al.exe não encontrar o contêiner de chave, ele tentará o arquivo especificado com /keyfile. Se isso for bem-sucedido, o assembly é assinado com as informações no arquivo de chave e as informações de chave serão instaladas no contêiner de chaves (semelhante à opção -i em Sn.exe) para que, na próxima compilação, a opção /keyname seja válida.
/keyn[ame]:text Especifica um contêiner que contém um par de chaves. Isso assinará o assembly (dê-lhe um nome forte) inserindo uma chave pública no manifesto do assembly. Al.exe assinará a montagem final com a chave privada.

Use Sn.exe para gerar um par de chaves.

As principais informações aparecem no campo .publickey do assembly.

Coloque text entre aspas duplas (" ") se houver um espaço incorporado.

Você também pode especificar essa opção como um atributo personalizado (AssemblyKeyNameAttribute) no código-fonte de qualquer módulo CIL.
/principal:method Especifica o nome totalmente qualificado (class.method) do método a ser usado como ponto de entrada ao converter um módulo em um arquivo executável.
/nologo Suprime o banner, ou logotipo, exibido na linha de comando quando você invoca Al.exe.
/saída:filename Especifica o nome do arquivo produzido por Al.exe. Esta é uma opção necessária.
/plataforma:text Limita em qual plataforma esse código pode ser executado; deve ser um dos x86, Itanium, x64, anycpu (o padrão) ou anycpu32bitpreferred.
/prod[uct]:text Especifica uma cadeia de caracteres para o campo Produto no assembly. Coloque a cadeia de caracteres entre aspas duplas (" ") se text contiver um espaço. Essa cadeia de caracteres é um atributo personalizado no assembly e está disponível para visualização com reflexão.

Se você não especificar /win32res, /product aparecerá no Explorador de Arquivos como o recurso Nome do Produto Win32.

Se o texto for uma cadeia de caracteres vazia, o recurso Nome do Produto Win32 aparecerá como um único espaço.

Se você especificar /win32res, /product não afetará as informações de recurso do Win32.

Você também pode especificar essa opção como um atributo personalizado (AssemblyProductAttribute) no código-fonte de qualquer módulo CIL.
/productv[ersion]:text Especifica uma cadeia de caracteres para o campo Versão do Produto no assembly. Coloque a cadeia de caracteres entre aspas duplas (" ") se text contiver um espaço. Essa cadeia de caracteres é um atributo personalizado no assembly e está disponível para visualização com reflexão.

Se você não especificar /win32res, /productversion será usado como o recurso Win32 Product Version . Se você não especificar /productversion, o recurso Win32 Product Version será preenchido pelo recurso Win32 File Version.

Se você especificar /win32res, /productversion não afetará as informações do recurso Win32.

Você também pode especificar essa opção como um atributo personalizado (AssemblyInformationalVersionAttribute) no código-fonte de qualquer módulo CIL.
/t[arget]:lib[rary] | exe | win[exe] Especifica o formato de arquivo do arquivo de saída: lib[rary] (biblioteca de códigos), exe (aplicativo de console) ou win[exe] (aplicativo baseado no Windows). A predefinição é lib[rary].
/modelo:filename Especifica o assembly, filename, do qual herdar todos os metadados do assembly, exceto o campo culture.

Um assembly que você criar com /template será um assembly satélite.
/título:text Especifica uma cadeia de caracteres para o campo Título no assembly. Coloque a cadeia de caracteres entre aspas duplas (" ") se text contiver um espaço. Essa cadeia de caracteres é um atributo personalizado no assembly e está disponível para visualização com reflexão.

Se você não especificar /win32res, /title aparecerá no Explorador de Arquivos como o recurso Descrição do Win32, que é usado pelo shell como o nome amigável de um aplicativo. Ele também é exibido no submenu Abrir com do menu de atalho para um tipo de arquivo para o qual existem vários aplicativos de suporte.

Se o texto for uma cadeia de caracteres vazia, o recurso Descrição do Win32 aparecerá como um único espaço.

Se você especificar /win32res, /title não afetará as informações do recurso Win32.

Você também pode especificar essa opção como um atributo personalizado (AssemblyTitleAttribute) no código-fonte de qualquer módulo CIL.
/marca]:text Especifica uma cadeia de caracteres para o campo Marca comercial no assembly. Coloque a cadeia de caracteres entre aspas duplas (" ") se text contiver um espaço. Essa cadeia de caracteres é um atributo personalizado no assembly e está disponível para visualização com reflexão.

Se você não especificar /win32res, /trademark aparecerá no Explorador de Arquivos como o recurso de marca comercial do Win32.

Se o texto for uma cadeia de caracteres vazia, o recurso de marca comercial do Win32 aparecerá como um único espaço.

Se você especificar /win32res, /trademark não afetará as informações de recurso do Win32.

Você também pode especificar essa opção como um atributo personalizado (AssemblyTrademarkAttribute) no código-fonte de qualquer módulo CIL.
/v[ersion]:version Especifica informações de versão para este assembly. O formato da cadeia de caracteres de versão é major.minor.build.revision. O valor padrão é 0.

Se você especificar /version, deverá especificar major. Se você especificar major e minor, poderá especificar um asterisco (*) para build. Isso faz com que build seja igual ao número de dias desde 1º de janeiro de 2000, hora local, e revision seja igual ao número de segundos desde a meia-noite do dia atual, hora local, dividido por 2.

Se você especificar major, minor, e build, poderá especificar um asterisco para revision. Isso faz com que revision seja igual ao número de segundos desde a meia-noite do dia atual, hora local, dividido por 2.

Para resumir, as cadeias de caracteres de versão válidas são as seguintes:

X

X.X

X.X.*

X.X.X

X.X.X.*

X.X.X.X

onde X é qualquer constante curta não assinada, exceto 65535 (0-65534).

Se você não especificar /win32res, /version será usado como o recurso Win32 Assembly Version .

Se você não especificar /win32res, /productversion e /fileversion, /version será usado para os recursos Versão do assembly, Versão do arquivo e Versão do produto Win32.

Se você especificar /win32res, /version não afetará as informações de recurso do Win32.

Você também pode especificar essa opção como um atributo personalizado (AssemblyVersionAttribute) no código-fonte de qualquer módulo CIL.
/win32icon:filename Insere um arquivo .ico no assembly. O arquivo .ico dá ao arquivo de saída a aparência desejada no Explorador de Arquivos.
/win32res:filename Insere um recurso Win32 (arquivo .res) no arquivo de saída. Um arquivo de recurso Win32 pode ser criado usando o compilador de recursos. O compilador de recursos é invocado quando você compila um programa Visual C++; Um arquivo .res é criado a partir do arquivo .rc.
@filename Especifica um arquivo de resposta que contém Al.exe comandos.

Os comandos no arquivo de resposta podem aparecer um por linha ou na mesma linha, separados por um ou mais espaços.
/? Exibe a sintaxe do comando e as opções da ferramenta.

Observações

Todos os compiladores do Visual Studio produzem assemblies. No entanto, se você tiver um ou mais módulos (metadados sem um manifesto), poderá usá Al.exe para criar um assembly com o manifesto em um arquivo separado.

Para instalar assemblies no cache, remover assemblies do cache ou listar o conteúdo do cache, use a Global Assembly Cache Tool (Gacutil.exe).

Erros e Avisos

A tabela a seguir lista os erros gerados por Al.exe.

Erro Description
AL1001 Erro interno do compilador

Tente determinar se Al.exe está falhando devido à sua incapacidade de analisar sintaxe inesperada. Em seguida, contate o Atendimento Microsoft.
AL1002 Memória esgotada

Al.exe ficou sem memória e parou. Aumente a quantidade de memória disponível.
AL1003 A opção do compilador 'option' deve ser seguida por um argumento

Al.exe esperava que um argumento fosse passado para uma opção de linha de comando. Por exemplo, se você especificar /algid:, deverá passar um identificador de algoritmo.
AL1004 Erro inesperado de inicialização do Common Language Runtime — 'reason'

Al.exe relatou um erro com a instalação do Visual Studio ou do Common Language Runtime pelo motivo especificado.
AL1005 Arquivo 'arquivo' muito grande para abrir

Todos os arquivos abertos por Al.exe devem ser menores que 4 gigabytes (GB).
AL1006 O ficheiro de resposta 'ficheiro' já estava incluído

O mesmo arquivo de resposta foi especificado (@file) mais de uma vez na linha de comando. O arquivo de resposta só pode ser incluído uma vez.
AL1007 Erro ao abrir o arquivo de resposta 'file' — 'reason'

Al.exe não é possível abrir o arquivo de resposta especificado pelo motivo especificado.
AL1008 Especificação de arquivo ausente para a opção de linha de comando 'option'

Al.exe esperava que um arquivo fosse passado para uma opção de linha de comando. Por exemplo, se você especificar a opção /out , deverá especificar um arquivo.
AL1009 Não é possível abrir 'arquivo' para escrever

Al.exe não conseguiu gravar em um arquivo, como o arquivo de assembly de saída. O disco pode estar cheio, o arquivo pode ser somente leitura ou você pode não ter permissões para o arquivo.
AL1010 Erro de sintaxe da linha de comando: faltando ':text' para a opção 'option'

Al.exe esperava que um argumento fosse passado para uma opção de linha de comando. Por exemplo, se você especificar a opção /title , deverá passar uma cadeia de caracteres.
AL1011 O ficheiro 'ficheiro' é um ficheiro executável e não pode ser aberto como um ficheiro de texto

Um arquivo binário foi especificado onde um arquivo de texto era esperado. Por exemplo, esse erro ocorre se um arquivo binário é passado na linha de comando como um arquivo de resposta.
AL1012 'value' não é uma configuração válida para a opção 'option'

Um valor inesperado foi passado para uma opção de linha de comando. Por exemplo, esse erro ocorre se você especificar um valor inválido para a opção /target .
AL1013 Opção de linha de comando não reconhecida: 'opção'

Uma opção de linha de comando inválida foi especificada.
AL1014 Erro de inicialização inesperado — 'razão'

Al.exe detetou uma falha de inicialização COM. Isso pode ser causado por falta de memória, mas uma causa mais provável são os arquivos DLL do sistema. Você verá um erro semelhante se executar qualquer programa com reconhecimento de automação ou COM, como o Microsoft Visual Studio.

Reinstale o sistema operacional.
AL1015 Não é possível encontrar o arquivo de mensagens 'alinkui.dll'

Al.exe requer Alinkui.dll. Certifique-se de que este ficheiro está no seu caminho. Se necessário, copie-o do CD do produto.
AL1016 Nenhum arquivo de entrada válido foi especificado

Al.exe requer um ou mais arquivos de entrada que não têm informações de assembly.
AL1017 Nenhum nome de arquivo de destino foi especificado

A opção /out necessária especificando o nome do arquivo de destino estava ausente.
AL1018 Não foi possível carregar o ficheiro 'ficheiro' necessário

Determinados arquivos DLL não podem ser carregados. Reinstale o Visual Studio ou o SDK do Windows.
AL1019 Falha de metadados durante a criação de assembly — motivo

A geração da montagem foi interrompida pelo motivo especificado. Por exemplo, esse erro ocorre se um arquivo especificado com a opção /win32res não for encontrado.
AL1020 Ignorando o assembly incluído 'arquivo'

Um arquivo de entrada que continha um assembly foi especificado. Al.exe arquivos de entrada não podem conter assemblies.
AL1021 'configuração' : substituindo a configuração anterior

Um módulo tinha um valor para uma configuração específica, possivelmente atribuído por meio de atributos personalizados, que era substituído por um valor passado usando uma opção de linha de comando Al.exe .
AL1022 Erro ao ler o recurso incorporado 'arquivo' — motivo

Al.exe não é possível ler o arquivo passado para a opção /embedresource pelo motivo especificado.
AL1023 Erro ao incorporar recurso 'arquivo' — motivo

O sistema operacional não pode incorporar o arquivo de recurso no assembly pelo motivo especificado.
AL1025 O registro ComType 'record' aponta para um registro de arquivo inválido 'record'

Os metadados no módulo de entrada são inválidos. A ferramenta que produziu o módulo deve ser corrigida.
AL1026 A versão especificada 'versão' é inválida

Consulte as informações sobre a opção /version para formatos válidos.
AL1028 Arquivo de chave 'arquivo' está faltando a chave privada necessária para assinar

Um arquivo de chave que contém apenas a chave pública foi passado para a opção /keyfile . Use a ferramenta de nome forte (Sn.exe) para gerar um arquivo que tenha uma chave pública e privada, conforme mostrado no comando a seguir.

sn -k keypair.snk.
AL1029 O nome do contêiner de chave 'container' não existe

O valor passado para a opção /keyname não é um contêiner válido. Use a ferramenta Nome forte (Sn.exe) para criar um contêiner.
AL1030 O serviço de criptografia não está instalado corretamente ou não tem um provedor de chaves adequado

Talvez seja necessário reinstalar o sistema operacional ou instalar algum utilitário criptográfico que foi usado para criar a chave.
AL1031 Erro ao ler o ícone 'arquivo' — motivo

Al.exe não é possível ler o arquivo que foi passado para a opção /win32icon pelo motivo especificado
AL1032 Erro ao gerar recursos para 'arquivo' — motivo

Al.exe não pode criar um arquivo devido a espaço em disco insuficiente ou algum outro erro. Este erro ocorre quando você especifica a opção /win32icon (que gera um arquivo .ico) ou não especifica a opção /win32res (que gera um arquivo que tem informações de recurso).

Se não conseguir resolver o problema de geração de ficheiros, utilize /win32res, que especifica um ficheiro que pode conter informações de versão ou de mapa de bits (ícone).
AL1033 O atributo personalizado de montagem 'atributo' foi especificado várias vezes com valores diferentes

Valores diferentes foram passados para duas ocorrências do mesmo atributo personalizado em módulos de origem que são especificados como entrada para Al.exe.
AL1034 Assembly 'arquivo' não pode ser copiado ou renomeado

Ao usar a sintaxe Al.exe que permite especificar um arquivo de entrada e copiá-lo, surgiu um conflito de nome que parou o compilador. Por exemplo, esse erro ocorre se você especificar input.dll,somename.dll /out:somename.dll.
AL1035 As bibliotecas não podem ter um ponto de entrada

Não é possível especificar a opção /target:lib (o padrão) e a opção /main .
AL1036 Ponto de entrada necessário para aplicativos executáveis

Ao usar a opção /target:exe ou /target:win , você também deve especificar a opção /main .
AL1037 Não foi possível encontrar o método de ponto de entrada 'main'

Al.exe não é possível encontrar um Main método no local especificado pela opção /main.
AL1039 Falha na inicialização do gerenciador de cache de assembly global — motivo

Reinstale o Visual Studio ou o SDK do Windows.
AL1040 Falha ao instalar o assembly no cache — motivo

Somente assemblies assinados podem ser instalados no cache. Para obter mais informações, consulte Global Assembly Cache.
AL1041 «Método»: não pode ser o ponto de entrada porque a assinatura ou a visibilidade estão incorretas ou porque é genérica

Um método foi especificado com a opção /main , mas esse método não é estático, não retorna int ou void, foi genérico ou tem argumentos inválidos.
AL1042 'exe': EXEs não podem ser adicionados módulos

Um arquivo .exe que não tem um assembly foi especificado como um arquivo de entrada para Al.exe. Al.exe só pode tomar arquivos dll sem assemblies como arquivos de entrada.
AL1043 O nome do arquivo de manifesto 'nome' não pode ser o mesmo que qualquer módulo

O nome especificado com a opção /out não pode ser o mesmo que qualquer um dos nomes de arquivo especificados como entrada para Al.exe.
AL1044 Erro ao ler o arquivo de chave 'arquivo'—razão

Ocorreu um erro ao abrir ou ler a partir de um ficheiro especificado com /keyfile ou o AssemblyKeyFileAttributeficheiro .
AL1045 Nome do arquivo 'arquivo' é muito longo ou inválido

Um nome de arquivo com mais de 260 caracteres foi passado para Al.exe. Escolha um nome de arquivo com menos caracteres ou um caminho mais curto ou renomeie o arquivo.
AL1046 O identificador de recurso 'ID' já foi usado neste assembly

Dois recursos, incorporados ou vinculados, têm o mesmo identificador ou nome (o segundo argumento). Remova ou renomeie um dos recursos conflitantes.
AL1047 Erro ao importar o arquivo 'arquivo' — motivo

Um arquivo de módulo não pode ser aberto pelo motivo especificado.
AL1048 Erro ao importar o módulo 'módulo' da montagem 'montagem' — razão

Ocorreu um erro ao abrir um arquivo não manifesto de um assembly multiarquivo. Este erro não é emitido diretamente pelo Al.exe, mas pode ser passado programaticamente para um processo que usa Al.exe.
AL1049 Não é possível gerar automaticamente números de versão de compilação e revisão para datas anteriores a 1º de janeiro de 2000

O relógio do sistema no computador está definido para uma data anterior a 1 de janeiro de 2000.
AL1050 O recurso que você está usando 'recurso antigo' não é mais suportado; por favor, use 'novo recurso' em vez disso

Um recurso anteriormente suportado pelo Al.exe agora está obsoleto. Em vez disso, use o recurso recomendado.
AL1051 Erro ao emitir o atributo 'atributo' — razão

Um atributo personalizado de assembly não foi processado por Al.exe pelo motivo especificado.
AL1052 O arquivo 'filename' não é um assembly

O arquivo especificado com /template deve conter metadados de assembly. Esse erro indica que o arquivo especificado por /template não continha um assembly.
AL1053 A versão 'version' especificada para a 'option' não está no formato normal 'major.minor.build.revision'

Al.exe detetou informações de versão mal formadas especificadas com as opções /fileversion ou /productversion.
AL1054 A versão 'version' especificada para a 'option' não está no formato normal 'major.minor.build.revision'

Al.exe detetou informações de versão mal formadas especificadas com o SatelliteContractVersionAttribute.
AL1055 O assembly referenciado 'nome do arquivo' não tem um nome forte

Este erro é emitido quando você está criando um assembly com um nome forte e faz referência a um assembly que não tem um nome forte. Para corrigir isso, você deve regenerar seu assembly com um nome forte ou anexar um nome forte ao assembly usando Sn.exe (consulte a documentação para Sn.exe).

Uma ocorrência comum desse erro é quando você está usando objetos COM por meio de assemblies wrapper, como quando você adiciona uma referência a um módulo COM a um projeto C# por meio do IDE do Visual Studio. Para evitar o erro, você pode especificar o arquivo de chave de nome forte para assemblies wrapper COM na propriedade Project "Wrapper Assembly Key File/Name"

Se você estiver criando o assembly wrapper por meio do tlbimp, consulte a documentação do tlbimp para obter informações sobre como atribuir um nome forte ao assembly do wrapper.

Se um assembly tiver um nome forte, ele poderá ser instalado no cache de assembly global. Consequentemente, os assemblies referenciados também entrariam no cache de assembly global. Somente assemblies com nomes fortes podem entrar no cache de assembly global.
AL1056 O 'nome do arquivo' do assembly referenciado é um assembly satélite localizado

Um assembly criado usando o AssemblyCultureAttribute atributo foi referenciado na criação do assembly atual. O AssemblyCultureAttribute atributo indica que o arquivo é um assembly satélite localizado e não é apropriado fazer referência a um assembly satélite. Em vez disso, faça referência ao assembly pai principal.
AL1057 Os executáveis não podem ser localizados, a cultura deve estar sempre vazia

Um assembly está sendo criado usando /target:exe , mas /culture foi especificado. As assembleias no .exe não podem ter informação no campo da Cultura.
AL1058 'file' é um assembly e não pode ser adicionado como um módulo

Em uma compilação C++, /assemblymodule (opção linker) foi passado um arquivo que continha um assembly.
AL1059 Erro desconhecido (código)

Al.exe recebeu um código de erro desconhecido (code).

As soluções possíveis incluem o seguinte:

Reinstale o Visual Studio.

Reinstale o SDK do Windows.

Verifique se há arquivos ausentes.

Verifique se há espaço em disco adequado.

Verifique se há memória adequada.

Pare outros processos que possam estar acessando os arquivos.

Reinicie o computador.
AL1060 Falha criptográfica ao criar hashes — razão

Ocorreu um erro ao criar os hashes de arquivo para um assembly de vários arquivos.
AL1061 Não é possível definir a opção 'opção' porque 'razão'

O valor especificado para esta opção é inválido pelo motivo especificado.
AL1062 O módulo 'módulo' foi especificado várias vezes; só será incluído uma vez

Esse aviso é gerado quando o mesmo arquivo de origem, entrada ou módulo é especificado várias vezes na linha de comando. Certifique-se de especificar o nome do arquivo apenas uma vez.
AL1063 O tipo público 'tipo' é definido em vários locais nesta montagem: 'file1' e 'file2'

O mesmo tipo foi encontrado em mais de um módulo na montagem. Apenas uma versão de cada tipo pode estar presente em uma montagem.
AL1064 Não é possível especificar várias opções /bugreport.

Apenas uma opção /bugreport é permitida.
AL1065 O nome do ficheiro 'Nome do ficheiro' é demasiado longo ou inválido

O nome de arquivo especificado é maior do que o máximo permitido.
AL1066 O caractere 'caractere' não é permitido na linha de comando ou em arquivos de resposta

Um caractere inválido foi encontrado, na linha de comando ou em um arquivo.
AL1067 'filename' é um ficheiro binário em vez de um ficheiro de texto

O arquivo está em formato binário em vez de texto.
AL1068 O módulo 'ModuleName' já está definido neste assembly. Cada recurso e módulo vinculado deve ter um nome de arquivo exclusivo.

O módulo ocorre mais de uma vez nesta montagem.
AL1069 Não é possível criar um nome de ficheiro curto 'nome de ficheiro' quando já existe um nome de ficheiro longo com o mesmo nome de ficheiro curto

O arquivo atual tem um nome que é a versão abreviada de um nome de arquivo que já existe. Por exemplo, compilar LongFileName.cs e, em seguida, recompilar com o nome LongFi~1.cs causará um erro de compilador semelhante a este. Se os arquivos de saída do compilador que têm nomes longos foram excluídos, mas os arquivos de vinculador análogos permaneceram, esse erro pode ocorrer.
AL1070 O conjunto agnóstico não pode ter um módulo específico do processador 'Nome do módulo'

Se você estiver criando usando /platform:agnostic (ou não especificar /platform), um erro será gerado se você tentar adicionar um módulo (usando /addmodule) que não seja agnóstico. Isso é como tentar vincular um arquivo i386 obj a um ia64 obj.

A principal fonte de módulos não agnósticos é o C++. Se você estiver usando /addmodule com um módulo C++, talvez seja necessário modificar seus scripts de compilação para especificar a configuração /platform apropriada.
AL1072 A montagem e o módulo 'Nome do módulo' não podem ter como alvo processadores diferentes

Não é possível vincular um assembly e um módulo destinados a processadores diferentes, porque o resultado deve ser executado em um único processador.
AL1073 A 'montagem' de montagem referenciada destina-se a um processador diferente

Não é possível vincular assemblies destinados a processadores diferentes, porque o resultado deve ser executado em um único processador.
AL1074 O nome do módulo 'Nome do módulo' armazenado em 'Nome do arquivo' deve corresponder ao nome do arquivo

Isso é exigido do vinculador. Para resolver esse problema, faça com que os dois nomes correspondam.
AL1075 Foi solicitada a assinatura de atraso, mas nenhuma chave foi fornecida

Quando um assembly é assinado com atraso, o compilador não calcula e armazena a assinatura, mas reserva espaço no arquivo para que a assinatura possa ser adicionada posteriormente.

Por exemplo, usar /delaysign+ permite que um testador coloque o assembly no cache global. Após o teste, você pode assinar totalmente o assembly adicionando a chave privada ao assembly usando o utilitário Assembly Linker.
AL1076 O tipo 'tipo' é encaminhado para várias montagens: 'montagem' e 'montagem'.

Um tipo só pode ser encaminhado para um assembly.
AL1077 O tipo público «tipo» é definido em «assembly» e transmitido a «assembly».

Há um tipo público duplicado no assembly que está sendo gerado. Um é uma definição de tipo válida e o outro é um encaminhador de tipo.

Exemplo

O comando a seguir cria um arquivo executável t2a.exe com um assembly do t2.netmodule módulo. O ponto de entrada é o Main método em MyClass.

al t2.netmodule /target:exe /out:t2a.exe /main:MyClass.Main

Consulte também