Al.exe (Assembly Linker)

Lo strumento Assembly Linker consente di generare un file con un manifesto dell'assembly a partire da uno o più moduli o file di risorse. Un modulo è un file di linguaggio intermedio (IL) privo di manifesto dell'assembly.

Nota

A partire da Visual Studio 2008, i compilatori C# e Visual Basic incorporano automaticamente un manifesto Win32 nell'assembly. Per altre informazioni, vedere -win32manifest (opzioni del compilatore C#).

Viene installato automaticamente con Visual Studio. Per eseguire lo strumento, usare il prompt dei comandi per gli sviluppatori di Visual Studio o Visual Studio Developer PowerShell.

Al prompt dei comandi digitare quanto segue:

Sintassi

al sources options

Parametri

È possibile specificare una o più sources tra quelle riportate di seguito.

Source (Sorgente) Descrizione
file[,target] Copia il contenuto del modulo file nel nome file specificato da target. Dopo la copia, Al.exe viene compilato target in un assembly.
/embed[resource]:file [,name [,private]] Incorpora la risorsa specificata da file nell'immagine che contiene il manifesto dell'assembly; Al.exe copia il contenuto di file nell'immagine pe (Portable Executable).

Il parametro name è un identificatore interno per la risorsa. Per impostazione predefinita nell'assembly le risorse sono pubbliche, ovvero visibili ad altri assembly. La specifica del parametro private rende le risorse non visibili ad altri assembly.

Se file è un file di risorse .NET Framework creato, ad esempio, dal generatore di file di risorse (Resgen.exe) o nell'ambiente di sviluppo, è possibile accedervi con i membri in System.Resources. Per altre informazioni, vedere ResourceManager. Per tutte le altre risorse, usare i GetManifestResource* metodi in Assembly per accedere alla risorsa in fase di esecuzione.

Se vengono passati solo i file di risorse a Al.exe, il file di output è un assembly di risorse satellite.
/link[resource]:file [,name [,target [,private]]] Collega un file di risorse a un assembly. La risorsa specificata da file diventa parte dell'assembly; il file non viene copiato. Il parametro file può essere in qualsiasi formato di file. È possibile, ad esempio, specificare una DLL nativa come parametro file. La DLL nativa diventa quindi parte dell'assembly in modo che possa essere installata nella Global Assembly Cache e che sia possibile accedervi dal codice gestito nell'assembly. Per ottenere lo stesso risultato è anche possibile usare l'opzione del compilatore /linkresource. Per altre informazioni, vedere -linkresource (opzioni del compilatore C#).

Il parametro name è un identificatore interno per la risorsa. Il target parametro specifica un percorso e un nome di file in cui Al.exe copia .file Dopo la copia, Al.exe viene compilato target in un assembly. Per impostazione predefinita nell'assembly le risorse sono pubbliche, ovvero visibili ad altri assembly. La specifica del parametro private rende le risorse non visibili ad altri assembly.

Se file è un file di risorse .NET Framework creato, ad esempio, dal generatore di file di risorse (Resgen.exe) o nell'ambiente di sviluppo, è possibile accedervi con i membri nello spazio dei System.Resources nomi . Per altre informazioni, vedere ResourceManager. Per tutte le altre risorse, per accedere alla risorsa in fase di esecuzione usare i metodi GetManifestResource* della classe Assembly.

Se vengono passati solo i file di risorse a Al.exe, il file di output è un assembly di risorse satellite.

È possibile specificare le options seguenti. L'opzione /out è obbligatoria.

Opzione Descrizione
/algid:id Specifica un algoritmo per generare un hash per tutti i file di un assembly su più file, ad eccezione del file contenente il manifesto dell'assembly. L'algoritmo predefinito è CALG_SHA1. Per altri algoritmi, vedere ALG_ID nella documentazione relativa a Platform SDK. Per la prima versione di .NET Framework sono validi solo gli algoritmi CALG_SHA1 e CALG_MD5.

I valori hash vengono archiviati nella tabella dei file del manifesto dell'assembly. In fase di installazione e caricamento i file dell'assembly vengono verificati rispetto ai valori hash.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyAlgorithmIdAttribute) nel codice sorgente di qualsiasi modulo.
/base[address]:addr Specifica l'indirizzo in corrispondenza del quale caricare una DLL nel computer dell'utente in fase di esecuzione. Il caricamento delle applicazioni risulta più veloce se si specifica l'indirizzo di base delle DLL anziché lasciare al sistema operativo il compito di rilocare le DLL nello spazio di processo.
/bugreport: filename Crea un file (filename) contenente informazioni per la segnalazione dei bug.
/comp[any]:text Specifica una stringa per il campo Società dell'assembly. Se text contiene uno spazio, racchiudere la stringa tra virgolette doppie (" "). Questa stringa è un attributo personalizzato dell'assembly ed è visualizzabile mediante reflection.

Se non si specifica /win32res, text viene visualizzato in Esplora file come Company proprietà per il file. Se si specifica /win32res, come proprietà Company in Esplora file vengono visualizzate le informazioni sulla società abbinate al file di risorse specificato.

Se text è una stringa vuota (""), la risorsa Company Win32 verrà visualizzata come spazio singolo.

Se si specifica /win32res, /company non influisce sulle informazioni della risorsa Win32.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyCompanyAttribute) nel codice sorgente di qualsiasi modulo MSIL.
/config[uration]:text Specifica una stringa per il campo Configurazione dell'assembly. Se text contiene uno spazio, racchiudere la stringa tra virgolette doppie (" "). Questa stringa è un attributo personalizzato dell'assembly ed è visualizzabile mediante reflection.

Se text è una stringa vuota, la risorsa Configurazione Win32 verrà visualizzata come spazio singolo.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyConfigurationAttribute) nel codice sorgente di qualsiasi modulo MSIL.
/copy[right]:text Specifica una stringa per il campo Copyright dell'assembly. Se text contiene uno spazio, racchiudere la stringa tra virgolette doppie (" "). Questa stringa è un attributo personalizzato dell'assembly ed è visualizzabile mediante reflection.

Se non si specifica /win32res, l'opzione /copyright viene visualizzata in Esplora file come risorsa Copyright Win32.

Se text è una stringa vuota, la risorsa Copyright Win32 verrà visualizzata come spazio singolo.

Se si specifica /win32res, /copyright non influisce sulle informazioni della risorsa Win32.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyCopyrightAttribute) nel codice sorgente di qualsiasi modulo MSIL.
/c[ulture]:text Specifica la stringa di impostazioni cultura da associare all'assembly. I valori validi per le diverse impostazioni cultura sono definiti nel documento RFC (Internet Requests for Comments) 1766 intitolato "Tags for the Identification of Languages".

Se text contiene uno spazio, racchiudere la stringa tra virgolette doppie (" "). Non è prevista una stringa di impostazioni cultura predefinita. La stringa è visualizzabile mediante reflection.

Per informazioni sulle stringhe text valide, vedere CultureInfo.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyCultureAttribute) nel codice sorgente di qualsiasi modulo MSIL.
/delay[sign][+ or -] Specifica se l'assembly avrà firma completa o parziale. Usare /delaysign- se si vuole un assembly completamente firmato. Usare /delaysign+ se si vuole solo inserire la chiave pubblica nell'assembly.

Quando si richiede un assembly completamente firmato, Al.exe esegue l'hashing del file che contiene il manifesto (metadati dell'assembly) e firma tale hash con la chiave privata. La firma digitale risultante viene archiviata nel file contenente il manifesto. Quando un assembly viene firmato in ritardo, Al.exe non calcola e archivia la firma, ma riserva solo spazio nel file in modo che la firma possa essere aggiunta in un secondo momento.

Il valore predefinito è /delaysign-.

L'opzione /delaysign ha effetto solo se abbinata all'opzione /keyfile o /keyname.

Ad esempio, l'uso di /delaysign+ consente a un tester di inserire l'assembly nella Global Assembly Cache. Al termine del test, sarà possibile apporre una firma completa nell'assembly inserendovi la chiave privata.

Nota: prima di usare ilGacutil.exe (strumento Global Assembly Cache) per inserire un assembly con firma ritardata nella cache globale, usare ilSn.exe (strumento nome sicuro) per registrare l'assembly per la verifica ignorata. Ad esempio, Sn.exe –Vr delaySignedAssembly. Usare questa procedura solo nelle attività di sviluppo.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyDelaySignAttribute) nel codice sorgente di qualsiasi modulo MSIL.
/descr[iption]:text Specifica una stringa per il campo Description dell'assembly. Se text contiene uno spazio, racchiudere la stringa tra virgolette doppie (" "). Questa stringa è un attributo personalizzato dell'assembly ed è visualizzabile mediante reflection.

Se non si specifica /win32res, l'opzione /description viene visualizzata in Esplora file come risorsa Commenti Win32.

Se text è una stringa vuota, la risorsa Commenti Win32 viene visualizzata come spazio singolo.

Se si specifica /win32res, /description non influisce sulle informazioni della risorsa Win32.

È possibile specificare questa opzione anche come attributo personalizzato (Description) nel codice sorgente di qualsiasi modulo MSIL.
/e[vidence]:file Incorpora file nell'assembly con il nome di risorsa di Security.Evidence.

Non è possibile usare il nome Security.Evidence per risorse regolari.
/fileversion:version Specifica una stringa per il campo Versione file dell'assembly. Questa stringa è un attributo personalizzato dell'assembly ed è visualizzabile mediante reflection.

Se non si specifica /win32res, l'opzione /fileversion viene usata come risorsa Versione file Win32. Se non si specifica /fileversion, la risorsa Versione file Win32 viene popolata dalla risorsa Versione assembly Win32.

Se si specifica /win32res, /fileversion non influisce sulla risorsa Win32.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyFileVersionAttribute) nel codice sorgente di qualsiasi modulo MSIL.
/Bandiere:flags Specifica un valore per il campo Flags dell'assembly. I valori possibili per flags sono i seguenti:

0x0000
L'assembly è compatibile in modalità side-by-side.

0x0010
L'assembly non può essere eseguito con altre versioni se esse sono in esecuzione nello stesso dominio applicazione.

0x0020
L'assembly non può essere eseguito con altre versioni se esse sono in esecuzione nello stesso processo.

0x0030
L'assembly non può essere eseguito contemporaneamente ad altre versioni se sono in esecuzione sullo stesso computer.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyFlagsAttribute) nel codice sorgente di qualsiasi modulo MSIL.
/fullpaths Causa Al.exe usare il percorso assoluto per tutti i file segnalati in un messaggio di errore.
/Guida Visualizza la sintassi e le opzioni di comando dello strumento.
/keyf[ile]:filename Specifica un file (filename) contenente una coppia di chiavi o solo una chiave pubblica da usare per la firma di un assembly. Durante la compilazione la chiave pubblica verrà inserita nel manifesto dell'assembly, mentre l'assembly finale verrà firmato con la chiave privata. Per informazioni sulla generazione di file chiave e sull'installazione di coppie chiave nei contenitori delle chiavi, vedere Lo strumento nome sicuro (Sn.exe) .

Quando si usa la firma ritardata il file presenta generalmente la chiave pubblica ma non quella privata.

Le informazioni sulla chiave pubblica, facente parte della coppia di chiavi, vengono visualizzate nel campo .publickey dell'assembly.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyKeyFileAttribute) nel codice sorgente di qualsiasi modulo MSIL.

Se sia /keyfile che /keyname vengono specificati (in base all'opzione della riga di comando o all'attributo personalizzato) nella stessa compilazione, Al.exe tenterà prima di tutto il contenitore specificato con /keyname. Se l'operazione riesce, l'assembly viene firmato con le informazioni incluse nel contenitore di chiavi. Se Al.exe non trova il contenitore della chiave, prova il file specificato con /keyfile. In caso di esito positivo, l'assembly viene firmato con le informazioni nel file della chiave e le informazioni sulla chiave verranno installate nel contenitore delle chiavi (simile all'opzione -i in Sn.exe) in modo che nella compilazione successiva l'opzione /keyname sia valida.
/keyn[ame]:text Specifica un contenitore che include una coppia di chiavi. Tale parametro firmerà l'assembly, ossia assegnerà a quest'ultimo un nome sicuro, inserendo una chiave pubblica nel manifesto dell'assembly. Al.exe firmerà quindi l'assembly finale con la chiave privata.

Usare Sn.exe per generare una coppia di chiavi.

Le informazioni relative alla chiave sono visualizzate nel campo .publickey dell'assembly.

Racchiudere text tra virgolette doppie (" ") se include uno spazio.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyKeyNameAttribute) nel codice sorgente di qualsiasi modulo MSIL.
/Principale:method Specifica il nome completo (class.method) del metodo da usare come punto di ingresso durante la conversione di un modulo in un file eseguibile.
/nologo Elimina il banner o il logo visualizzato nella riga di comando quando si richiama Al.exe.
/Cambio:filename Specifica il nome del file prodotto da Al.exe. Si tratta di un'opzione obbligatoria.
/Piattaforma:text Limita le piattaforme su cui è possibile eseguire il codice: x86, Itanium, x64, anycpu (la piattaforma predefinita) o anycpu32bitpreferred.
/prod[uct]:text Specifica una stringa per il campo Prodotto dell'assembly. Se text contiene uno spazio, racchiudere la stringa tra virgolette doppie (" "). Questa stringa è un attributo personalizzato dell'assembly ed è visualizzabile mediante reflection.

Se non si specifica /win32res, l'opzione /product viene visualizzata in Esplora file come risorsa Nome prodotto Win32.

Se text è una stringa vuota, la risorsa Nome prodotto Win32 viene visualizzata come spazio singolo.

Se si specifica /win32res, /product non influisce sulle informazioni della risorsa Win32.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyProductAttribute) nel codice sorgente di qualsiasi modulo MSIL.
/productv[ersion]:text Specifica una stringa per il campo Versione prodotto dell'assembly. Se text contiene uno spazio, racchiudere la stringa tra virgolette doppie (" "). Questa stringa è un attributo personalizzato dell'assembly ed è visualizzabile mediante reflection.

Se non si specifica /win32res, l'opzione /productversion viene usata come risorsa Versione prodotto Win32. Se non si specifica /productversion, la risorsa Versione prodotto Win32 viene popolata dalla risorsa Versione file Win32.

Se si specifica /win32res, /productversion non influisce sulle informazioni della risorsa Win32.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyInformationalVersionAttribute) nel codice sorgente di qualsiasi modulo MSIL.
/t[arget]:lib[rary] | exe | win[exe] Specifica il formato del file di output. I valori possibili sono: lib[rary] per le librerie di codici, exe per le applicazioni console e win[exe] per le applicazioni basate su Windows. Il valore predefinito è lib[rary].
/Modello:filename Specifica l'assembly, filename, dal quale ereditare tutti i metadati dell'assembly, ad eccezione del campo relativo alle impostazioni cultura.

Gli assembly creati con /template sono assembly satellite.
/Titolo:text Specifica una stringa per il campo Titolo dell'assembly. Se text contiene uno spazio, racchiudere la stringa tra virgolette doppie (" "). Questa stringa è un attributo personalizzato dell'assembly ed è visualizzabile mediante reflection.

Se non si specifica /win32res, l'opzione /title viene visualizzata in Esplora file come risorsa Descrizione Win32 e usata dalla shell come nome descrittivo di un'applicazione. Viene visualizzata anche nel sottomenu Apri con del menu di scelta rapida dei tipi di file supportati da più applicazioni.

Se text è una stringa vuota, la risorsa Descrizione Win32 viene visualizzata come spazio singolo.

Se si specifica /win32res, /title non influisce sulle informazioni della risorsa Win32.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyTitleAttribute) nel codice sorgente di qualsiasi modulo MSIL.
/trade[mark]:text Specifica una stringa per il campo Marchio dell'assembly. Se text contiene uno spazio, racchiudere la stringa tra virgolette doppie (" "). Questa stringa è un attributo personalizzato dell'assembly ed è visualizzabile mediante reflection.

Se non si specifica /win32res, l'opzione /trademark viene visualizzata in Esplora file come risorsa Marchio Win32.

Se text è una stringa vuota, la risorsa Marchio Win32 viene visualizzata come spazio singolo.

Se si specifica /win32res, /trademark non influisce sulle informazioni della risorsa Win32.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyTrademarkAttribute) nel codice sorgente di qualsiasi modulo MSIL.
/v[ersion]:version Specifica le informazioni sulla versione dell'assembly. Il formato della stringa di versione è major.minor.build.revision. Il valore predefinito è 0.

Se si specifica /version, è necessario specificare anche major. Se si specifica major e minor, è possibile specificare un asterisco (*)per build. In questo caso il valore build coinciderà con il numero dei giorni trascorsi dal 1 gennaio 2000, ora locale, e il valore revision sarà uguale alla metà del numero dei secondi trascorsi dalla mezzanotte del giorno corrente, ora locale.

Se si specifica major, minor e build, è possibile specificare un asterisco per revision. In questo caso, il valore revision sarà uguale alla metà del numero dei secondi trascorsi dalla mezzanotte del giorno corrente, ora locale.

Le stringhe di versione valide sono pertanto le seguenti:

X

X.X

X.X.*

X.X.X

X.X.X.*

X.X.X.X

dove X è una costante di tipo Unsigned Short diversa da 65535 (0-65534).

Se non si specifica /win32res, l'opzione /version viene usata come risorsa Versione assembly Win32.

Se non si specificano /win32res, /productversion e /fileversion, l'opzione /version viene usata per le risorse Versione assembly, Versione file e Versione prodotto Win32.

Se si specifica /win32res, /version non influisce sulle informazioni della risorsa Win32.

È possibile specificare questa opzione anche come attributo personalizzato (AssemblyVersionAttribute) nel codice sorgente di qualsiasi modulo MSIL.
/win32icon:filename Inserisce nell'assembly un file icona (.ico). Il file .ico determina l'aspetto desiderato del file di output in Esplora File.
/win32res:filename Inserisce nel file di output una risorsa Win32 (file .res). È possibile creare un file di risorse Win32 usando il Compilatore di risorse. Il Compilatore di risorse viene richiamato quando si compila un programma Visual C++. Dal file .rc viene creato un file .res.
@filename Specifica un file di risposta che contiene Al.exe comandi.

Nel file di risposta i comandi possono essere disposti uno per riga oppure tutti sulla stessa riga, separati da uno o più spazi.
/? Visualizza la sintassi e le opzioni di comando dello strumento.

Commenti

Tutti i compilatori di Visual Studio producono assembly. Tuttavia, se si dispone di uno o più moduli (metadati senza un manifesto), è possibile usare Al.exe per creare un assembly con il manifesto in un file separato.

Per installare gli assembly nella cache, rimuovere gli assembly dalla cache o elencare il contenuto della cache, usare lo strumento Global Assembly Cache (Gacutil.exe).

Errori e avvisi

Nella tabella seguente sono elencati gli errori generati da Al.exe.

Errore Descrizione
al1001 Errore interno del compilatore

Provare a determinare se Al.exe ha esito negativo a causa dell'impossibilità di analizzare la sintassi imprevista. Quindi contattare il Supporto tecnico Microsoft.
al1002 Memoria insufficiente

Al.exe memoria esaurita e arrestata. Aumentare la quantità di memoria disponibile.
al1003 L'opzione 'opzione' del compilatore deve essere seguita da un argomento

Al.exe previsto che un argomento venga passato a un'opzione della riga di comando. Se, ad esempio, si specifica /algid:, è necessario passare un identificatore dell'algoritmo.
al1004 Errore imprevisto di inizializzazione di Common Language Runtime: 'motivo'

Al.exe segnalato un errore con l'installazione di Visual Studio o Common Language Runtime per il motivo specificato.
al1005 Impossibile aprire il file 'file'. File troppo grande

Tutti i file aperti da Al.exe devono essere inferiori a 4 gigabyte (GB).
al1006 Il file di risposta 'file' è già incluso

Nella riga di comando è stato specificato lo stesso file di risposta (@file) più di una volta. Il file di risposta può essere incluso solo una volta.
al1007 Si è verificato un errore durante l'apertura del file di risposta 'file': 'motivo'

Al.exe non è possibile aprire il file di risposta specificato per il motivo specificato.
al1008 Specifica del file mancante per l'opzione 'opzione' della riga di comando

Al.exe previsto che un file venga passato a un'opzione della riga di comando. Se, ad esempio, si specifica l'opzione /out, è necessario specificare un file.
al1009 Impossibile aprire 'file' per la scrittura

Al.exe non è stato in grado di scrivere in un file, ad esempio il file di assembly di output. Il disco potrebbe essere pieno, il file potrebbe essere di sola lettura o si potrebbe non disporre delle autorizzazioni per il file.
al1010 Errore nella sintassi della riga di comando: manca ':testo' per l'opzione 'opzione'

Al.exe previsto che un argomento venga passato a un'opzione della riga di comando. Se, ad esempio, si specifica l'opzione /title, è necessario passare una stringa.
al1011 'file' è un file eseguibile e non può essere aperto come file di testo.

È stato specificato un file binario dove era previsto un file di testo. Questo errore si verifica, ad esempio, se nella riga di comando viene passato un file binario come file di risposta.
al1012 'valore' non è un'impostazione valida per l'opzione 'opzione'

Un valore imprevisto è stato passato a un'opzione della riga di comando. Questo errore si verifica, ad esempio, se si specifica un valore non valido nell'opzione /target.
al1013 Opzione non riconosciuta della riga di comando: 'opzione'

È stata specificata un'opzione della riga di comando non valida.
al1014 Errore di inizializzazione imprevisto: 'motivo'

Al.exe rilevato un errore di inizializzazione COM. L'errore potrebbe essere provocato da mancanza di memoria, ma una causa più probabile sono i file DLL del sistema. In genere viene visualizzato un errore simile se si esegue un programma basato sull'automazione o su COM come Microsoft Visual Studio.

Reinstallare il sistema operativo.
al1015 Impossibile trovare il file di messaggi 'alinkui.dll'

Al.exe richiede Alinkui.dll. Assicurarsi che questo file sia presente nel percorso. Se necessario, copiarlo dal CD del prodotto.
al1016 Nessun file di input specificato

Al.exe richiede uno o più file di input che non dispongono di informazioni sull'assembly.
al1017 Nessun nome file di destinazione specificato

L'opzione /out obbligatoria che specifica il nome file di destinazione non è presente.
al1018 Impossibile caricare il file richiesto 'file'

Alcuni file DLL non possono essere caricati. Reinstallare Visual Studio o Windows SDK.
al1019 Errore dei metadati durante la creazione dell'assembly: motivo

La generazione dell'assembly è stata interrotta per il motivo specificato. Questo errore si verifica, ad esempio, se non è possibile trovare un file specificato con l'opzione /win32res.
al1020 L'assembly incluso 'file' verrà ignorato

È stato specificato un file di input che contiene un assembly. Al.exefile di input non possono contenere assembly.
al1021 'impostazione': l'impostazione precedente verrà ignorata

Un modulo ha un valore per una determinata impostazione, possibilmente assegnato tramite attributi personalizzati, sottoposto a override con un valore passato usando un'opzione della riga di comandoAl.exe.
al1022 Errore durante la lettura della risorsa incorporata 'file': motivo

Al.exe non è possibile leggere il file passato all'opzione /embedresource per il motivo specificato.
al1023 Errore durante l'incorporamento della risorsa 'file': motivo

Il sistema operativo non è in grado di incorporare il file di risorse nell'assembly per il motivo specificato.
al1025 Il record ComType 'record' fa riferimento al record 'record' di un file non valido

I metadati nel modulo di input non sono validi. Lo strumento che ha prodotto il modulo deve essere corretto.
al1026 La versione specificata 'versione' non è valida

Per indicazioni sui formati validi, vedere le informazioni sull'opzione /version.
al1028 Nel file di chiave 'file' manca la chiave privata necessaria per la firma

Un file di chiave che contiene solo la chiave pubblica è stato passato all'opzione /keyfile. Usare lo strumento Nome sicuro (Sn.exe) per generare un file con una chiave pubblica e privata, come illustrato nel comando seguente.

sn -k keypair.snk.
al1029 Il nome del contenitore di chiavi 'contenitore' non esiste

Il valore passato all'opzione /keyname non corrisponde a un contenitore valido. Usare lo strumento nome sicuro (Sn.exe) per creare un contenitore.
al1030 Il servizio di crittografia non è installato correttamente o non dispone di un provider di chiavi adatto

Potrebbe essere necessario reinstallare il sistema operativo o installare un'utilità di crittografia usata per creare la chiave.
al1031 Errore durante la lettura dell'icona 'file': motivo

Al.exe non è possibile leggere il file passato all'opzione /win32icon per il motivo specificato
al1032 Errore durante la generazione di risorse per 'file': motivo

Al.exe non è possibile creare un file a causa di spazio su disco insufficiente o di un altro errore. Questo errore si verifica quando si specifica l'opzione /win32icon (che genera un file con estensione ico) o non si specifica l'opzione /win32res (che genera un file contenente informazioni sulla risorsa).

Se non è possibile risolvere il problema di generazione del file, usare /win32res, che specifica un file che può contenere informazioni sulla versione o sull'immagine bitmap (icona).
al1033 L'attributo personalizzato 'attributo' dell'assembly è stato specificato più volte con valori diversi

Sono stati passati valori diversi a due occorrenze dello stesso attributo personalizzato nei moduli di origine specificati come input per Al.exe.
al1034 Impossibile copiare o rinominare l'assembly 'file'

Quando si usa la sintassi diAl.exe che consente di specificare un file di input e di copiarlo, si è verificato un conflitto di nomi che ha arrestato il compilatore. Questo errore si verifica, ad esempio, se si specifica input.dll,somename.dll /out:somename.dll.
al1035 Impossibile specificare un punto di ingresso per le librerie

Non è possibile specificare l'opzione /target:lib (opzione predefinita) insieme all'opzione /main.
al1036 Punto di ingresso necessario per applicazioni eseguibili

Quando si usa l'opzione /target:exe o /target:win, è necessario specificare anche l'opzione /main.
al1037 Impossibile trovare il metodo 'main' nel punto di ingresso specificato

Al.exe non è possibile trovare un Main metodo nella posizione specificata dall'opzione /main .
al1039 Inizializzazione di Global Assembly Cache Manager non riuscita. Motivo

Reinstallare Visual Studio o Windows SDK.
al1040 Impossibile installare l'assembly nella cache. Motivo

Nella cache è possibile installare solo assembly firmati. Per altre informazioni, vedere Global Assembly Cache.
al1041 Impossibile impostare 'metodo' come punto di ingresso. Firma o visibilità non corretta oppure l'elemento è generico

È stato specificato un metodo con l'opzione /main, ma il metodo non è statico, non restituisce int o void, è generico o include argomenti non validi.
al1042 'EXE': impossibile aggiungere file EXE come moduli

Un file .exe che non dispone di un assembly è stato specificato come file di input per Al.exe. Al.exe può accettare solo file DLL senza assembly come file di input.
al1043 Il nome di file del manifesto 'nome' non può essere uguale a quello di un qualsiasi modulo

Il nome specificato con l'opzione /out non può essere uguale a uno dei nomi di file specificati come input per Al.exe.
al1044 Errore durante la lettura del file di chiave 'file': motivo

Si è verificato un errore durante l'apertura o la lettura di un file specificato con /keyfile o AssemblyKeyFileAttribute.
al1045 Il nome di file 'file' è troppo lungo o non valido

Un nome di file più lungo di 260 caratteri è stato passato a Al.exe. Scegliere un nome file con un numero minore di caratteri o un percorso più breve oppure rinominare il file.
al1046 L'identificatore di risorsa 'ID' è già stato usato in questo assembly

Due risorse, incorporate o collegate, hanno lo stesso identificatore o nome (secondo argomento). Rimuovere o rinominare una delle risorse in conflitto.
al1047 Errore durante l'importazione del file 'file': motivo

Non è possibile aprire un file di modulo per il motivo specificato.
al1048 Errore durante l'importazione del modulo 'module' dell'assembly 'assembly': motivo

Si è verificato un errore durante l'apertura di un file non manifesto di un assembly su più file. Questo errore non viene generato direttamente da Al.exe, ma può essere passato a livello di codice a un processo che usa Al.exe.
al1049 Impossibile generare automaticamente i numeri di build e di revisione per le date antecedenti il 1 gennaio 2000

L'orologio di sistema nel computer è impostato su una data precedente all'1 gennaio 2000.
al1050 La funzionalità usata 'vecchia funzionalità' non è più supportata. Usare invece 'nuova funzionalità'

Una funzionalità supportata in precedenza da Al.exe è ora obsoleta. Usare al suo posto la funzionalità consigliata.
al1051 Errore durante l'emissione dell'attributo 'attribute', motivo

Un attributo personalizzato dell'assembly non è stato elaborato da Al.exe per il motivo specificato.
al1052 Il file 'nome file' non è un assembly

Il file specificato con /template deve contenere i metadati dell'assembly. Questo errore indica che il file specificato da /template non contiene un assembly.
al1053 La versione 'versione' specificata per 'opzione' non è nel formato normale 'principale.secondaria.build.revisione'

Al.exe rilevate informazioni sulla versione non valide specificate con le opzioni /fileversion o /productversion .
al1054 La versione 'versione' specificata per 'opzione' non è nel formato normale 'principale.secondaria.build.revisione'

Al.exe rilevato informazioni sulla versione non formate specificate con .SatelliteContractVersionAttribute
al1055 L'assembly 'nome file' al quale si fa riferimento non ha un nome sicuro

Questo errore viene generato quando si compila un assembly con un nome sicuro e si fa riferimento a un assembly che non ha un nome sicuro. Per risolvere questo problema, è necessario rigenerare l'assembly con un nome sicuro o associare un nome sicuro all'assembly usando Sn.exe (vedere la documentazione per Sn.exe).

Un caso comune in cui avviene questo errore è quando si usano oggetti COM mediante assembly wrapper, ad esempio quando si aggiunge a un progetto C# un riferimento a un modulo COM tramite IDE di Visual Studio. Per evitare questo errore, è possibile specificare il file di chiave con nome sicuro per gli assembly wrapper COM nella proprietà del progetto "File di chiave assembly wrapper/Nome".

Se l'assembly wrapper viene creato tramite tlbimp, vedere la documentazione di tlbimp per informazioni su come assegnare un nome sicuro all'assembly wrapper.

Se un assembly ha un nome sicuro, può essere installato in Global Assembly Cache. Di conseguenza, anche gli assembly di riferimento vengono inseriti in Global Assembly Cache. Solo gli assembly con nomi sicuri possono essere inseriti in Global Assembly Cache.
al1056 L'assembly 'nome file' a cui si fa riferimento è un assembly satellite localizzato

È stato fatto riferimento a un assembly creato mediante l'attributo AssemblyCultureAttribute per la creazione dell'assembly corrente. L'attributo AssemblyCultureAttribute indica che il file è un assembly satellite localizzato e non è opportuno fare riferimento a un assembly satellite. Fare invece riferimento all'assembly padre principale.
al1057 I file eseguibili non possono essere localizzati. Il campo Impostazioni cultura deve essere sempre vuoto

Si sta creando un assembly tramite /target:exe, ma è stata specificata l'opzione /culture. Gli assembly nel .exe non possono avere informazioni nel campo Impostazioni cultura.
al1058 'file' è un assembly e non può essere aggiunto come modulo

In una compilazione C++, ad /assemblymodule (opzione del linker) è stato passato un file contenente un assembly.
al1059 Errore sconosciuto (codice)

Al.exe ricevuto un codice di errore sconosciuto (code).

Ecco alcune possibili soluzioni:

Reinstallare Visual Studio.

Reinstallare Windows SDK.

Controllare se vi sono file mancanti.

Verificare che sia disponibile spazio su disco adeguato.

Verificare che sia disponibile memoria adeguata.

Arrestare altri processi che potrebbero accedere ai file.

Riavviare il computer.
al1060 Errore di crittografia durante la creazione di hash, motivo

Si è verificato un errore durante la creazione di hash dei file per un assembly su più file.
al1061 Impossibile impostare l'opzione 'opzione' a causa di 'opzione'

Il valore specificato per questa opzione non è valido per il motivo indicato.
al1062 Il modulo 'modulo' è stato specificato più volte. Verrà incluso una sola volta

Questo avviso viene generato quando nella riga di comando si specifica più volte la stessa origine, lo stesso input o lo stesso file di modulo. Assicurarsi di specificare il nome file solo una volta.
al1063 Il tipo pubblico 'tipo' è definito in più punti in questo assembly: 'file1' e 'file2'

È stato rilevato lo stesso tipo in più di un modulo nell'assembly. In un assembly può essere presente solo una versione di ogni tipo.
al1064 Impossibile specificare più opzioni /bugreport

È consentita una sola opzione /bugreport.
al1065 Il nome di file 'nome file' è troppo lungo o non valido

Il nome file specificato supera la lunghezza massima consentita.
al1066 Il carattere 'character' non è consentito nella riga di comando o nei file di risposta

È stato trovato un carattere non valido nella riga di comando o in un file.
al1067 'nome file' è un file binario e non un file di testo

Il file è in formato binario anziché di testo.
al1068 Il modulo 'nome modulo' è già definito in questo assembly. Ogni risorsa collegata e ogni modulo devono avere un nome di file univoco.

Il modulo è presente più volte in questo assembly.
al1069 Non è possibile creare il nome di file breve 'nome file' se esiste già un nome di file lungo con lo stesso nome di file breve

Il file corrente ha un nome che corrisponde alla versione breve di un nome file già esistente. Ad esempio, la compilazione di LongFileName.cs e quindi la ricompilazione con il nome LongFi~1.cs provocheranno un errore del compilatore simile a questo. Questo errore può verificarsi se i file di output del compilatore con nomi lunghi sono stati eliminati, ma i file analoghi del linker sono rimasti.
al1070 L'assembly indipendente non può avere un modulo specifico del processore 'Nome modulo'

Se si sta creando usando /platform:agnostic (o non si specifica /platform), verrà generato un errore se si tenta di aggiungere un modulo (usando /addmodule) che non è indipendente. È come provare a collegare un file i386 obj a un file ia64 obj.

L'origine principale dei moduli non agnostici è C++. Se si usa /addmodule con un modulo C++, può essere necessario modificare gli script di compilazione per specificare l'impostazione /platform appropriata.
al1072 L'assembly e il modulo 'nome modulo' non possono essere destinati a processori diversi

Non è possibile collegare un assembly e un modulo destinati a processori diversi, perché il risultato deve essere eseguito su un singolo processore.
al1073 L'assembly 'assembly' a cui si fa riferimento ha come destinazione un processore diverso

Non è possibile collegare assembly destinati a processori diversi, perché il risultato deve essere eseguito su un singolo processore.
al1074 Il nome modulo 'nome modulo' memorizzato in 'nome file' deve corrispondere al relativo nome di file

Questa condizione è obbligatoria per il linker. Per risolvere questo problema, fare in modo che i due nomi corrispondano.
al1075 Richiesta firma ritardata ma non è stata fornita alcuna chiave

Quando per un assembly è impostata la firma ritardata, il compilatore non calcola e archivia la firma, ma riserva spazio nel file in modo che la firma possa essere aggiunta successivamente.

Ad esempio, l'uso di /delaysign+ consente a un tester di inserire l'assembly nella Global Assembly Cache. Al termine del test, è possibile firmare completamente l'assembly aggiungendo la chiave privata all'assembly mediante l'utilità Assembly Linker.
al1076 Il tipo 'tipo' viene inoltrato a più assembly: 'assembly' e 'assembly'

Un tipo può essere inoltrato a un solo assembly.
al1077 Il tipo pubblico 'tipo' è definito in 'assembly' e inoltrato a 'assembly'

Nell'assembly generato è presente un tipo pubblico duplicato. Uno è una definizione di tipo valido e l'altro è un server d'inoltro del tipo.

Esempio

Il comando seguente crea un file eseguibile t2a.exe con un assembly a partire dal modulo t2.netmodule. Il punto di ingresso è il metodo Main in MyClass.

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

Vedi anche