Бөлісу құралы:


Al.exe (компоновщик сборок)

Компоновщик сборок создает файл с манифестом сборки из одного или нескольких файлов, являющихся модулями или файлами ресурсов. Модуль — это файл промежуточного языка (IL) без манифеста сборки.

Примечание.

Начиная с Visual Studio 2008, компиляторы C# и Visual Basic автоматически внедряют манифест Win32 в сборку. Дополнительные сведения см. в разделе -win32manifest (параметры компилятора C#).

Эта программа автоматически устанавливается вместе с Visual Studio. Для запуска этого средства используйте Командную строку разработчика или PowerShell для разработчиков в Visual Studio.

Введите в командной строке: .

Синтаксис

al sources options

Параметры

В качестве параметра sources можно указать одно или несколько следующих значений.

Оригинал Description
file[,target] Копирует содержимое файла file (модуля) в файл, указанный параметром target. После копирования программа Al.exe компилирует файл target в сборку.
/embed[resource]: file[,name[,private]] Внедряет ресурс, указанный параметром file, в образ, содержащий манифест сборки. Программа Al.exe копирует содержимое файла file в переносимый исполняемый образ (PE-файл).

Параметр name задает внутренний идентификатор ресурса. По умолчанию ресурсы в сборке открыты (то есть доступны для других сборок). При указании параметра private ресурс будет скрыт от других сборок.

Если file является файлом ресурсов .NET Framework, созданным, например, генератором файлов ресурсов (Resgen.exe) или в среде разработки, то к нему можно обращаться с помощью членов пространства имен System.Resources. Дополнительные сведения см. в разделе ResourceManager. Чтобы получить доступ ко всем остальным ресурсам во время выполнения, используйте методы GetManifestResource* в классе Assembly.

Если в программу Al.exe передаются только файлы ресурсов, результатом работы является вспомогательная сборка ресурсов.
/link[resource]: file[,name[,target[,private]]] Связывает файл ресурсов со сборкой. Ресурс, заданный параметром file, становится частью сборки; файл не копируется. Файл, заданный параметром file, может иметь любой формат. Например, в качестве параметра file можно указать библиотеку DLL в машинном коде. После выполнения этой команды библиотека DLL в машинном коде станет частью сборки, так что она может быть установлена в глобальный кэш сборок и станет доступна из управляемого кода в сборке. Аналогичную операцию можно выполнить с помощью параметра компилятора /linkresource. См. сведения в разделе -linkresource (параметры компилятора C#).

Параметр name задает внутренний идентификатор ресурса. Параметр target задает путь и имя файла, в который Al.exe копируется file. После копирования Al.exe компилируется target в сборку. По умолчанию ресурсы в сборке открыты (то есть доступны для других сборок). При указании параметра private ресурс будет скрыт от других сборок.

Если file является файлом ресурсов .NET Framework, созданным, например, генератором файлов ресурсов (Resgen.exe) или в среде разработки, то к нему можно обращаться с помощью членов пространства имен System.Resources. Дополнительные сведения см. в разделе ResourceManager. Чтобы получить доступ ко всем остальным ресурсам во время выполнения, используйте методы GetManifestResource* в классе Assembly.

Если в программу Al.exe передаются только файлы ресурсов, результатом работы является вспомогательная сборка ресурсов.

В качестве options можно задать следующие параметры; необходимо указать /out.

Вариант Описание
/algid: id Задает алгоритм хэширования всех файлов многофайловой сборки, кроме файла, содержащего манифест сборки. По умолчанию используется алгоритм CALG_SHA1. Для получения дополнительных сведений о других алгоритмах см. раздел "ALG_ID" в документации Platform SDK. В первом выпуске .NET Framework доступны только алгоритмы CALG_SHA1 и CALG_MD5.

Хэш-значения хранятся в таблице файлов манифеста сборки. Во время установки и загрузки файлы сборки сравниваются со своими хэш-значениями.

Этот параметр можно также указать в исходном коде любого модуля в качестве настраиваемого атрибута (AssemblyAlgorithmIdAttribute).
/base[address]: addr Задает адрес для загрузки библиотеки DLL на компьютер пользователя во время выполнения. Приложения загружаются быстрее, если задан базовый адрес библиотеки DLL и операционная система не перемещает библиотеки в пространстве процесса.
/bugreport: filename Создает файл (filename), содержащий сведения об обнаруженных ошибках.
/comp[any]: text Задает строковое значение поля "Company" в сборке. Если значение параметра text содержит пробел, строку следует заключить в двойные кавычки (""). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением.

Если параметр /win32res не указан, строка text отображается в проводнике как свойство Company для файла. Если параметр /win32res указан, сведения о компании в указанном файле ресурсов отображаются в проводнике как свойство Company.

Если вместо текста указана пустая строка (""), ресурс Win32 Company отображается в виде одиночного пробела.

Если параметр /win32res задан, параметр /company не повлияет на сведения о ресурсах Win32.

Этот параметр также можно указать как настраиваемый атрибут (AssemblyCompanyAttribute) в исходном коде для любого модуля CIL.
/config[uration]: text Задает строковое значение поля "Configuration" в сборке. Если значение параметра text содержит пробел, строку следует заключить в двойные кавычки (""). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением.

Если вместо текста указана пустая строка, ресурс Win32 "Configuration" отображается в виде одного пробела.

Этот параметр также можно указать как настраиваемый атрибут (AssemblyConfigurationAttribute) в исходном коде для любого модуля CIL.
/copy[right]: text Задает строковое значение поля "Copyright" в сборке. Если значение параметра text содержит пробел, строку следует заключить в двойные кавычки (""). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением.

Если параметр /win32res не указан, строка /copyright будет отображаться в проводнике как ресурс Win32 "Copyright".

Если вместо текста указана пустая строка, ресурс Win32 "Copyright" отображается в виде одного пробела.

Если параметр /win32res задан, параметр /copyright не повлияет на сведения о ресурсах Win32.

Этот параметр также можно указать как настраиваемый атрибут (AssemblyCopyrightAttribute) в исходном коде для любого модуля CIL.
/c[ulture]: text Задает строковое значение языка и региональных параметров для связывания со сборкой. Допустимые значения этого параметра определяются документом RFC 1766 "Теги для идентификации языков".

Если значение параметра text содержит пробел, строку следует заключить в двойные кавычки (""). Строковое значение языка и региональных параметров по умолчанию не указано. Эта строка доступна для просмотра с отражением.

Дополнительные сведения о допустимых строках text см. в разделе CultureInfo.

Этот параметр также можно указать как настраиваемый атрибут (AssemblyCultureAttribute) в исходном коде для любого модуля CIL.
/delay[sign][+ or -] Указывает, будет ли сборка полностью или частично подписана. Если требуется полностью подписанная сборка, используйте /delaysign-. Если необходимо только поместить открытый ключ в сборку, используйте параметр /delaysign+.

При запросе полностью подписанной сборки программа Al.exe хэширует файл, содержащий манифест (метаданные сборки), и подписывает хэш закрытым ключом. Итоговая цифровая подпись хранится в файле, содержащем манифест. При использовании отложенной подписи программа Al.exe не вычисляет и не сохраняет подпись, а просто резервирует место в файле для последующего добавления подписи в сборку.

Значение по умолчанию — /delaysign-.

Параметр /delaysign не оказывает никакого влияния, за исключением применения с /keyfile или /keyname.

Например, чтобы поместить сборку в глобальный кэш для тестирования, используйте параметр /delaysign+. После тестирования можно полностью подписать сборку, поместив в нее закрытый ключ.

Прежде чем использовать средство глобального кэша сборок (Gacutil.exe) для помещения сборки с отложенной подписью в глобальный кэш, зарегистрируйте сборку с помощью средства для работы со строгими именами (Sn.exe) для пропуска проверки. Например, Sn.exe –Vr delaySignedAssembly. Такой метод следует использовать только при разработке.

Этот параметр также можно указать как настраиваемый атрибут (AssemblyDelaySignAttribute) в исходном коде для любого модуля CIL.
/descr[iption]: text Задает строковое значение поля Description в сборке. Если значение параметра text содержит пробел, строку следует заключить в двойные кавычки (""). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением.

Если параметр /win32res не указан, элемент /description будет отображаться в проводнике как ресурс Win32 Comments.

Если вместо текста указана пустая строка, ресурс Win32 Comments отображается в виде одиночного пробела.

Если параметр /win32res задан, параметр /description не повлияет на сведения о ресурсах Win32.

Этот параметр также можно указать как настраиваемый атрибут (Description) в исходном коде для любого модуля CIL.
/e[vidence]: file Внедряет файл file в сборку с именем ресурса "Security.Evidence".

Имя "Security.Evidence" нельзя использовать для обычных ресурсов.
/fileversion: version Задает строковое значение поля File Version в сборке. Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением.

Если параметр /win32res не указан, элемент /fileversion будет использоваться в качестве ресурса Win32 File Version. Если параметр /fileversion не указан, ресурс Win32 File Version будет взят из ресурса Win32 Assembly Version.

Если параметр /win32res задан, элемент /fileversion не оказывает влияния на ресурс Win32.

Этот параметр также можно указать как настраиваемый атрибут (AssemblyFileVersionAttribute) в исходном коде для любого модуля CIL.
/flags: flags Задает значение для поля Flags в сборке. Возможные значения параметра flags.

0x0000
Сборка является параллельно совместимой.

0x0010
Сборка не может выполняться одновременно с другими своими версиями, если они выполняются в одном домене приложения.

0x0020
Сборка не может выполняться одновременно с другими своими версиями, если они выполняются в одном процессе.

0x0030
Сборка не может выполняться с другими версиями, выполняемыми на том же компьютере.

Этот параметр также можно указать как настраиваемый атрибут (AssemblyFlagsAttribute) в исходном коде для любого модуля CIL.
/fullpaths Указывает, что в программе Al.exe должны использоваться абсолютные пути для всех файлов, имена которых присутствуют в сообщении об ошибке.
/help Отображает синтаксис команд и параметров программы.
/keyf[ile]: filename Задает файл (filename), содержащий пару ключей или только открытый ключ для подписывания сборки. Компилятор вставляет открытый ключ в манифест сборки, а затем подписывает окончательную сборку закрытым ключом. Сведения о создании файлов ключей и установке пар ключей в контейнеры ключей см. в разделе Программа строгих имен (Sn.exe).

Если используется отложенная подпись, в этом файле обычно помещается открытый, а не закрытый ключ.

Данные открытого ключа (из пары ключей) находятся в поле "publickey" сборки.

Этот параметр также можно указать как настраиваемый атрибут (AssemblyKeyFileAttribute) в исходном коде для любого модуля CIL.

Если указаны оба параметра /keyfile и /keyname (в командной строке или с помощью настраиваемого атрибута) в одной компиляции, программа Al.exe сначала попытается обработать контейнер, заданный параметром /keyname. При успешном завершении сборка подписывается данными контейнера ключей. Если Al.exe не обнаружит контейнер ключей, будет предпринята попытка использовать файл, заданный параметром /keyfile. При успешном завершении сборка подписывается данными из файла ключей, и сведения о ключах будут помещены в контейнер ключей (аналогично действию параметра "-i" в программе Sn.exe), так что при следующей компиляции параметр /keyname будет действительным.
/keyn[ame]: text Задает контейнер, хранящий пару ключей. При этом сборка (ей следует присвоить строгое имя) будет подписана путем вставки открытого ключа в манифест сборки. Затем программа Al.exe подпишет окончательную сборку закрытым ключом.

Для создания пары ключей используется программа Sn.exe.

Данные ключа отображаются в поле "publickey" сборки.

Если строка text содержит пробел, заключите ее в двойные кавычки ("").

Этот параметр также можно указать как настраиваемый атрибут (AssemblyKeyNameAttribute) в исходном коде для любого модуля CIL.
/main: method Задает полное имя (class.method) метода, являющегося точкой входа при преобразовании модуля в исполняемый файл.
/nologo Отключает отображение эмблемы или логотипа в командной строке при вызове программы Al.exe.
/out: filename Задает имя файла, создаваемого программой Al.exe. Это обязательный параметр.
/platform: text Ограничивает платформы, на которых может работать этот код: x86, Itanium, x64, anycpu (по умолчанию) или anycpu32bitpreferred.
/prod[uct]: text Задает строковое значение поля Product в сборке. Если значение параметра text содержит пробел, строку следует заключить в двойные кавычки (""). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением.

Если параметр /win32res не указан, элемент /product будет отображаться в проводнике как ресурс Win32 Product Name.

Если вместо текста указана пустая строка, ресурс Win32 Product Name отображается в виде одного пробела.

Если параметр /win32res задан, параметр /product не повлияет на сведения о ресурсах Win32.

Этот параметр также можно указать как настраиваемый атрибут (AssemblyProductAttribute) в исходном коде для любого модуля CIL.
/productv[ersion]: text Задает строковое значение поля Product Version в сборке. Если значение параметра text содержит пробел, строку следует заключить в двойные кавычки (""). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением.

Если параметр /win32res не указан, элемент /productversion будет использоваться в качестве ресурса Win32 Product Version. Если параметр /productversion не указан, ресурс Win32 Product Version будет взят из ресурса Win32 File Version.

Если параметр /win32res задан, параметр /productversion не повлияет на сведения о ресурсах Win32.

Этот параметр также можно указать как настраиваемый атрибут (AssemblyInformationalVersionAttribute) в исходном коде для любого модуля CIL.
/t[arget]: lib[rary] | exe | win[exe] Задает формат выходного файла: lib[rary] (библиотека кода), exe (консольное приложение) или win[exe] (приложение Windows). Значение по умолчанию — lib[rary].
/template: filename Задает сборку filename, от которой требуется унаследовать все метаданные сборки, кроме поля языка и региональных параметров.

Сборка, созданная с помощью параметра /template, является вспомогательной.
/title: text Задает строковое значение поля Title в сборке. Если значение параметра text содержит пробел, строку следует заключить в двойные кавычки (""). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением.

Если параметр /win32res не указан, значение параметра /title отображается в проводнике как ресурс Win32 Description, используемый оболочкой в качестве понятного имени приложения. Он также отображается в подменю Открыть с помощью контекстного меню типов файлов, поддерживаемых несколькими приложениями.

Если вместо текста указана пустая строка, ресурс Win32 Description отображается в виде одного пробела.

Если параметр /win32res задан, параметр /title не повлияет на сведения о ресурсах Win32.

Этот параметр также можно указать как настраиваемый атрибут (AssemblyTitleAttribute) в исходном коде для любого модуля CIL.
/trade[mark]: text Задает строковое значение поля Trademark в сборке. Если значение параметра text содержит пробел, строку следует заключить в двойные кавычки (""). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением.

Если параметр /win32res не указан, элемент /trademark будет отображаться в проводнике как ресурс Win32 Trademark.

Если вместо текста указана пустая строка, ресурс Win32 Trademark отображается в виде одного пробела.

Если параметр /win32res задан, параметр /trademark не повлияет на сведения о ресурсах Win32.

Этот параметр также можно указать как настраиваемый атрибут (AssemblyTrademarkAttribute) в исходном коде для любого модуля CIL.
/v[ersion]: version Определяет сведения о версии данной сборки. Формат строки версии — major.minor.build..revision Значение по умолчанию — 0.

При указании параметра /version необходимо также указать параметр major. При указании major и minorможно указать звездочку (*)для build. В этом случае значение build будет равно количеству дней, прошедших с 1 января 2000 г. по местному времени, а значение revision будет равно количеству секунд, прошедших с полуночи текущего дня по местному времени, деленному на 2.

Если заданы значения major, minor и build, можно указать знак звездочки для revision. В этом случае значение revision будет равно половине числа секунд, прошедших с полуночи текущего дня по местному времени.

Итак, допускаются следующие форматы строки версии.

X

X.X

X.X.*

X.X.X

X.X.X.*

X.X.X.X

где X — любая короткая целая константа без знака, кроме 65535 (то есть в диапазоне от 0 до 65534).

Если параметр /win32res не указан, элемент /version будет использоваться в качестве ресурса Win32 Assembly Version.

Если параметры /win32res, /productversion и /fileversion не указаны, элемент /version будет использоваться в качестве ресурсов Win32 Assembly Version, File Version и Product Version.

Если параметр /win32res задан, параметр /version не повлияет на сведения о ресурсах Win32.

Этот параметр также можно указать как настраиваемый атрибут (AssemblyVersionAttribute) в исходном коде для любого модуля CIL.
/win32icon: filename Внедряет в сборку ICO-файл. ICO-файл является изображением значка выходного файла в проводнике.
/win32res: filename Вставляет файл ресурсов Win32 (RES-файл) в выходной файл. Файл ресурсов Win32 может быть создан компилятором ресурсов. Компилятор ресурсов вызывается при компиляции программы Visual C++; RES-файл создается из RC-файла.
@filename Задает файл ответов, содержащий команды программы Al.exe.

Команды в файле ответов могут быть расположены в отдельных строках или в одну строку с одним или несколькими пробелами в качестве разделителей.
/? Отображает синтаксис команд и параметров программы.

Замечания

Все компиляторы Visual Studio создают сборки. Но при наличии одного или нескольких модулей (метаданных без манифеста) можно создать сборку с манифестом в отдельном файле при помощи программы Al.exe.

Для установки сборок в кэш, удаления сборок из кэша и просмотра содержимого кэша служит программа глобального кэша сборок (Gacutil.exe).

Ошибки и предупреждения

В таблице ниже перечислены ошибки, создаваемые программой Al.exe.

Ошибка Описание
al1001 Внутренняя ошибка компилятора

Возможно, ошибка возникает из-за сбоя Al.exe при попытке проанализировать неправильный синтаксис. Если это не так, обратитесь в службу поддержки продуктов Майкрософт.
al1002 Недостаточно памяти

Программа Al.exe исчерпала все ресурсы памяти и была остановлена. Увеличьте объем доступной памяти.
al1003 После параметра компилятора "параметр" следует указать аргумент

В программе Al.exe для параметра командной строки должен быть задан аргумент. Например, после параметра /algid: требуется указать идентификатор алгоритма.
al1004 Непредусмотренная ошибка при инициализации Common Language Runtime — "причина"

Программа Al.exe сообщает об ошибке установки Visual Studio или среды CLR, возникшей по указанной причине.
al1005 Невозможно открыть файл "файл" — его размер недопустимо велик

Программа Al.exe не может открыть файл, размер которого превышает 4 ГБ.
al1006 Файл ответа "файл" уже был включен

В командной строке несколько раз указан один и тот же файл ответов (@file). Файл ответов можно включить только один раз.
al1007 Ошибка при открытии файла ответа "файл" — "причина"

Программа Al.exe не может открыть указанный файл ответов по указанной причине.
al1008 Не задан файл для параметра "параметр"

В программе Al.exe для параметра командной строки должен быть указан файл. Например, при задании параметра /out требуется указать файл.
al1009 Не удается открыть файл "файл" для записи

Программе Al.exe не удалось выполнить запись в файл, например в выходной файл сборки. Возможно, диск переполнен, файл доступен только для чтения, или у вас нет разрешений на доступ к файлу.
al1010 Синтаксическая ошибка в командной строке: для параметра "параметр" отсутствует ":< текст>"

В программе Al.exe для параметра командной строки должен быть задан аргумент. Например, при задании параметра /title требуется указать строку.
al1011 Файл "файл" является выполняемым и не может быть открыт как текстовый файл

Вместо текстового файла был указан двоичный. Эта ошибка может возникнуть, например, при указании двоичного файла в командной строке в качестве файла ответов.
al1012 "значение" является недопустимым значением параметра "параметр"

Параметру командной строки передано неожиданное значение. Например, эта ошибка возникает, если указано недопустимое значение для параметра /target.
al1013 Нераспознанный параметр командной строки: "параметр"

Задан недопустимый параметр командной строки.
al1014 Непредусмотренная ошибка инициализации — "причина"

Программа Al.exe обнаружила ошибку инициализации COM. Эта ошибка может быть вызвана нехваткой памяти, но чаще всего она связана с системными файлами DLL. Аналогичное сообщение об ошибке, скорее всего, будет появляться при запуске любых приложений, совместимых с Automation или COM, например Microsoft Visual Studio.

Переустановите операционную систему.
al1015 Не удалось найти файл сообщений "alinkui.dll"

Программе Al.exe требуется файл Alinkui.dll. Обеспечьте доступ к нему. При необходимости скопируйте его с компакт-диска продукта.
al1016 Не указаны допустимые входные файлы.

Программе Al.exe требуется один или несколько входных файлов, которые не содержат данных сборки.
al1017 Не указано имя выходного файла

Отсутствует обязательный параметр /out, задающий имя целевого файла.
al1018 Не удалось загрузить требуемый файл "файл"

Не удалось загрузить определенные файлы DLL. Переустановите Visual Studio или Windows SDK.
al1019 Сбой метаданных при создании сборки — причина

Генерация сборки прервана по указанной причине. Например, эта ошибка возникает, если не найден файл, указанный в качестве аргумента параметра /win32res.
al1020 Включенная сборка "файл" игнорируется

В качестве входного файла был указан файл, содержащий сборку. Входные файлы Al.exe не должны содержать сборки.
al1021 "параметр" : предыдущее значение перезаписывается

Значение определенного параметра модуля, возможно, присвоенное с помощью пользовательских атрибутов, переопределяется значением, переданным с помощью параметра командной строки Al.exe.
al1022 Ошибка при чтении внедренного ресурса "файл" — причина

Программа Al.exe не может прочитать файл, указанный в параметре /embedresource, по указанной причине.
al1023 Ошибка при внедрении ресурса "файл" — причина

Операционная система не может внедрить файл ресурсов в сборку по указанной причине.
al1025 Запись ComType "запись" указывает на недопустимую запись файла "запись"

Метаданные входного модуля являются недопустимыми. Необходимо исправить инструмент, с помощью которого создавался модуль.
al1026 Указана недопустимая версия "версия"

Перечень допустимых форматов см. в описании параметра /version.
al1028 В файле ключей "файл" отсутствует закрытый ключ, который требуется для создания подписи

В качестве аргумента параметра /keyfile указан файл, содержащий только открытый ключ. Используя средство для работы со строгими именами (Sn.exe), создайте файл, содержащий и открытый, и закрытый ключи, как показано в примере команды ниже.

sn -k keypair.snk.
al1029 Имя контейнера ключа "контейнер" не существует

В качестве аргумента параметра /keyname указан недопустимый контейнер. Создайте контейнер, используя средство для работы со строгими именами (Sn.exe).
al1030 Криптографическая служба установлена неверно или не имеет подходящего поставщика ключа

Возможно, вам потребуется переустановить операционную систему или установить криптографическое средство, с помощью которого был создан ключ.
al1031 Ошибка при считывании значка "файл" — причина

Программа Al.exe не может прочитать файл, указанный в параметре /win32icon, по указанной причине.
al1032 Ошибка при генерировании ресурсов для "файл" — причина

Программе Al.exe не удалось создать файл из-за нехватки места на диске или другой ошибки. Эта ошибка появляется при задании параметра /win32icon (служащего для создания ICO-файла) или при отсутствии параметра /win32res (служащего для создания файла с данными ресурсов).

Если ошибку создания файла не удается устранить, используйте параметр /win32res, который служит для указания файла, содержащего сведения о версии или растровом изображении (значке).
al1033 Особый атрибут сборки "атрибут" задан несколько раз с разными значениями

Один и тот же пользовательский атрибут имеет различные значения в исходных модулях, которые указаны в качестве входных для Al.exe.
al1034 Невозможно скопировать или переименовать сборку "файл"

При использовании синтаксиса Al.exe, позволяющего указать входной файл и скопировать его, возник конфликт имен, из-за которого компиляция была остановлена. Например, эта ошибка возникает, если задать input.dll,somename.dll /out:somename.dll.
al1035 Библиотеки не могут иметь точки входа

Нельзя одновременно задать параметры /target:lib (используется по умолчанию) и /main.
al1036 Для исполняемого приложения требуется точка входа

Если используется параметр /target:exe или /target:win, необходимо также указать параметр /main.
al1037 Невозможно найти метод "main" для точки входа

Программе Al.exe не удалось найти метод Main в расположении, указанном в параметре /main.
al1039 Сбой при инициализации диспетчера глобального кэша сборок — причина

Переустановите Visual Studio или Windows SDK.
al1040 Сбой при установке сборки в кэш — причина

В кэш можно устанавливать только подписанные сборки. Дополнительные сведения см. в разделе Глобальный кэш сборок.
al1041 "метод" не может являться точкой входа, так как либо имеет неправильную сигнатуру или объявление видимости, либо имеет базовый тип

Метод был указан с параметром /main, но он не является статическим, не возвращает значение типа int или void, является универсальным или имеет недопустимые аргументы.
al1042 "EXE-файл": файлы EXE не могут быть добавленными модулями

В качестве входного файла для программы Al.exe указан EXE-файл, не содержащий сборки. В качестве входных файлов для Al.exe допускаются только DLL-файлы без сборок.
al1043 Имя файла манифеста "имя" не может совпадать ни с одним из имен модулей

Имя файла, указанное в параметре /out, не должно совпадать с именами файлов, указанных в качестве входных для программы Al.exe.
al1044 Ошибка при считывании файла ключа "файл" — причина

Произошла ошибка при открытии или чтении файла, заданного параметром /keyfile или AssemblyKeyFileAttribute.
al1045 Слишком длинное или недопустимое имя файла "файл"

Программе Al.exe передано имя файла, содержащее более 260 символов. Выберите файл с более коротким именем или путем либо переименуйте файл.
al1046 Идентификатор ресурса "идентификатор" в этой сборке уже использован

Два ресурса, внедренные или связанные, имеют одинаковые идентификаторы или имена (второй аргумент). Удалите или переименуйте один из конфликтующих ресурсов.
al1047 Ошибка при импорте файла "файл" — причина

Не удается открыть файл модуля по указанной причине.
al1048 Ошибка при импорте модуля "модуль" сборки "сборка" — причина

Произошла ошибка при открытии не содержащего манифест файла или многофайловой сборки. Эта ошибка не возникает непосредственно в программе Al.exe, но может быть программно передана в процесс, использующий Al.exe.
al1049 Невозможно автоматически сгенерировать номера сборки и редакции для дат ранее 1 января 2000 г.

Системные часы компьютера установлены на дату ранее 1 января 2000 г.
al1050 Используемая функция "старая функция" больше не поддерживается; вместо нее используйте "новая функция"

Функция, которая раньше поддерживалась программой Al.exe, теперь устарела. Используйте вместо нее рекомендуемую функцию.
al1051 Ошибка при порождении атрибута "атрибут" — "причина"

Пользовательский атрибут сборки не был обработан программой Al.exe по указанной причине.
al1052 Файл "имя файла" не является сборкой

Файл, указанный в параметре /template, должен содержать метаданные сборки. Эта ошибка означает, что файл, указанный в параметре /template, не содержит сборку.
al1053 Версия "версия" для "параметр" указана не в формате "главная.вспомогательная.сборка.редакция"

Программа Al.exe обнаружила неправильный формат номера версии, заданного параметром /fileversion или /productversion.
al1054 Версия "версия" для "параметр" указана не в формате "главная.вспомогательная.сборка.редакция"

Программа Al.exe обнаружила неправильный формат номера версии, заданного параметром SatelliteContractVersionAttribute.
al1055 Сборка "имя файла", на которую дана ссылка, не имеет строгого имени

Эта ошибка выдается в том случае, если при создании сборки со строгим именем встретилась ссылка на сборку без строгого имени. Для исправления ошибки необходимо либо заново создать сборку со строгим именем, либо присвоить этой сборке строгое имя с помощью программы Sn.exe (см. документацию по программе Sn.exe).

Такая ошибка обычно возникает при использовании COM-объектов посредством сборок-оболочек, например при добавлении в проект C# ссылки на модуль COM с помощью интегрированной среды разработки Visual Studio. Чтобы избежать этой ошибки, можно указать файл ключей строгого имени для сборок-оболочек COM в свойстве проекта "Файл ключей сборки-оболочки/Имя".

При создании сборки-оболочки с помощью tlbimp см. документацию по tlbimp для получения сведений о том, как присвоить строгое имя сборке-оболочке.

Если сборка имеет строгое имя, ее можно установить в глобальный кэш сборок. Следовательно, сборки, на которые она ссылается, также должны быть установлены в глобальный кэш сборок. Но в глобальный кэш сборок можно устанавливать только сборки со строгими именами.
al1056 Сборка "имя файла", на которую дана ссылка, является сборкой языкового дополнения

При создании текущей сборки была указана сборка, созданная с использованием атрибута AssemblyCultureAttribute. Атрибут AssemblyCultureAttribute показывает, что файл является локализованной вспомогательной сборкой, ссылки на которую недопустимы. Вместо этого используйте ссылку на основную родительскую сборку.
al1057 Исполняемые файлы не подлежат локализации; свойство "Культура" должно быть пустым

Сборка создается с использованием /target:exe, но при этом указан параметр /culture. Сборки в EXE-файлах должны иметь пустое поле "Культура".
al1058 "файл" является сборкой и не может добавляться в качестве модуля

При компиляции на языке C++ в параметре компоновщика /assemblymodule был указан файл, содержащий сборку.
al1059 Неизвестная ошибка (код)

В программе Al.exe произошла ошибка с неизвестным кодом (code).

Ниже представлены возможные решения.

Переустановите Visual Studio.

Переустановите Windows SDK.

Проверьте наличие всех требуемых файлов.

Проверьте наличие достаточного места на диске.

Проверьте наличие достаточного объема памяти.

Завершите другие процессы, которые могут обращаться к файлам.

Перезагрузите компьютер.
al1060 Сбой криптографической службы при создании хэшей — причина

Произошла ошибка при создании хэшей файлов для многофайловой сборки.
al1061 Невозможно задать параметр "параметр" по причине "причина"

Значение, указанное для параметра, недопустимо по указанной причине.
al1062 Модуль "модуль" был указан несколько раз. Он будет включен только один раз

Это предупреждение выдается в случае, когда исходный файл, входной файл или модуль был указан в командной строке несколько раз. Убедитесь в том, что имя файла указано только один раз.
al1063 Открытый тип "тип" определен в нескольких местах в данной сборке: "файл1" и "файл2"

Один и тот же тип обнаружен в нескольких модулях сборки. В сборке может присутствовать только одна версия каждого типа.
al1064 Задание нескольких параметров /bugreport недопустимо.

Можно задать только один параметр /bugreport.
al1065 Слишком длинное или недопустимое имя файла "имя файла"

Длина указанного имени файла превышает допустимый максимум.
al1066 Использование символа "символ" в командной строке или файлах ответа не допускается

В командной строке или в файле обнаружен недопустимый символ.
al1067 "имя файла" является двоичным, а не текстовым файлом

Файл имеет двоичный формат вместо текстового.
al1068 Модуль "имя модуля" уже определен в данной сборке. Каждый связанный ресурс и модуль должны иметь уникальное имя.

Модуль встречается в сборке несколько раз.
al1069 Невозможно создать короткое имя файла "имя файла", если уже существует длинное имя файла, содержащее это короткое имя

Имя текущего файла является краткой версией уже существующего имени файла. Например, подобная ошибка компилятора возникает, если скомпилировать файл LongFileName.cs, а затем повторно скомпилировать его с именем LongFi~1.cs. Та же ошибка может возникнуть, если выходные файлы компилятора с длинными именами были удалены, но аналогичные файлы компоновщика остались.
al1070 Агностическая сборка не может иметь специальный процессорный модуль "имя модуля".

Если сборка выполняется с использованием аргумента /platform:agnostic (или если параметр /platform не указан), при попытке добавить (с помощью /addmodule) модуль, не являющийся агностическим, возникнет ошибка. Это аналогично попытке связать OBJ-файл i386 с OBJ-файлом ia64.

Основным источником неагностических модулей является C++. Если параметр /addmodule используется для добавления модуля C++, может потребоваться изменить скрипты сборки, указав соответствующее значение /platform.
al1072 Сборка и модуль "имя модуля" не могут предназначаться для разных процессоров

Сборку и модуль нельзя связать друг с другом, если они предназначены для разных процессоров, так как результат должен выполняться на каком-то одном процессоре.
al1073 Сборка "сборка", на которую дается ссылка, предназначена для другого процессора

Сборки нельзя связать друг с другом, если они предназначены для разных процессоров, так как результат должен выполняться на каком-то одном процессоре.
al1074 Имя модуля "имя модуля", сохраненное в "имя файла", должно соответствовать своему имени файла

Это обязательное требование к компоновщику. Для решения проблемы приведите имена в соответствие друг другу.
al1075 Поступил запрос на отложенную подпись, но ключ не был предоставлен

При использовании отложенной подписи компилятор не вычисляет и не сохраняет подпись, а резервирует место в файле для добавления подписи в сборку в будущем.

Например, чтобы поместить сборку в глобальный кэш для тестирования, используйте параметр /delaysign+. После тестирования можно полностью подписать сборку, добавив в нее закрытый ключ с помощью компоновщика сборок.
al1076 Тип "тип" передан для нескольких сборок: "сборка" и "сборка"

Каждый тип может быть передан только в одну сборку.
al1077 Общий тип "тип" определен в "сборка" и передан для "сборка"

В создаваемой сборке обнаружен дубликат открытого типа. Один экземпляр представляет допустимое определение типа, а второй является переадресатором типа.

Пример

Следующая команда создает исполняемый файл t2a.exe со сборкой из модуля t2.netmodule. Точкой входа является метод Main в MyClass.

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

См. также