Al.exe (компоновщик сборок)
Программа компоновщика сборок создает файл с манифестом сборки из одного или нескольких файлов, являющихся модулями или файлами ресурсов. Модуль — это файл промежуточного языка MSIL без манифеста сборки.
Примечание |
---|
Чтобы избежать виртуализации на компьютере Windows Vista, сборка должна включать манифест win32 с указанием запрошенного уровня выполнения.Запуская al.exe непосредственно из командной строки, можно либо внедрить манифест в файл ресурсов win32, либо с помощью программы mt.exe присоединить манифест позже в процессе построения.В Visual Studio 2008 компиляторы C# и Visual Basic автоматически внедряют манифест win32 в сборку.Дополнительные сведения см. в разделе /win32manifest (параметры компилятора C#). |
Это средство устанавливается автоматически с Visual Studio и пакетом SDK Windows. Чтобы запустить инструмент, мы рекомендуем использовать командную строку Visual Studio или командную строку пакета Windows SDK (командную оболочку). Эти служебные программы позволяют легко работать с инструментом, не переходя к папке установки. Дополнительные сведения см. в разделе Командная строка Visual Studio и пакета Windows SDK.
Если на компьютере установлена среда Visual Studio: на панели задач последовательно щелкните Start, All Programs, Visual Studio, Visual Studio Tools и Visual Studio Command Prompt.
– или –
Если на компьютере установлен пакет Windows SDK: на панели задач щелкните Start, выберите All Programs и откройте папку с пакетом Windows SDK, затем щелкните Command Prompt (или CMD Shell).
В командной строке введите следующее:
al sources options
Параметры
В качестве sources можно указать один или несколько следующих источников:
Исходный код |
Описание |
---|---|
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 отображается в проводнике Microsoft Windows как свойство Company для файла. Если параметр /win32res указан, сведения о компании в указанном файле ресурсов отображаются в проводнике Windows как свойство Company. Если текст — пустая строка (""), ресурс Win32 Company отображается в виде одиночного пробела. Если параметр /win32res задан, параметр /company не повлияет на сведения о ресурсах Win32. Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyCompanyAttribute). |
/config[uration]:text |
Задает строковое значение поля Configuration в сборке. Если значение параметра text содержит пробел, следует заключать строку в двойные кавычки (" "). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением. Если текст — пустая строка, ресурс Win32 Configuration отображается в виде одного пробела. Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyConfigurationAttribute). |
/copy[right]:text |
Задает строковое значение поля Copyright в сборке. Если значение параметра text содержит пробел, следует заключать строку в двойные кавычки (" "). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением. Если параметр /win32res не указан, строка /copyright будет отображаться в проводнике Windows как ресурс Win32 Copyright. Если текст — пустая строка, ресурс Win32 Copyright отображается в виде одного пробела. Если параметр /win32res задан, параметр /copyright не повлияет на сведения о ресурсах Win32. Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyCopyrightAttribute). |
/c[ulture]:text |
Задает строку языка и региональных параметров для связывания со сборкой. Допустимые значения этого параметра определяются документом RFC 1766 "Tags for the Identification of Languages" (Теги идентификации языков). Если значение параметра text содержит пробел, следует заключать строку в двойные кавычки (" "). Строка языка и региональных параметров не имеет значения по умолчанию. Эта строка доступна для просмотра с отражением. Дополнительные сведения о допустимых строках text см. в разделе CultureInfo. Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyCultureAttribute). |
/delay[sign][+|-] |
Определяет, будет ли сборка полностью или частично подписана. Используйте /delaysign-, если требуется полностью подписанная сборка. Если необходимо только поместить открытый ключ в сборку, используйте параметр /delaysign+. При запросе полностью подписанной сборки программа Al.exe хэширует файл, содержащий манифест (метаданные сборки), и подписывает хэш закрытым ключом. Итоговая цифровая подпись хранится в файле, содержащем манифест. При использовании отложенной подписи Al.exe не вычисляет и не сохраняет подпись, а просто резервирует место в файле для последующего добавления подписи в сборку. По умолчанию используется значение /delaysign-. Опция /delaysign не оказывает влияния, за исключением применения с /keyfile или /keyname. Например, чтобы поместить сборку в глобальный кэш для тестирования, используйте параметр /delaysign+. После тестирования можно полностью подписать сборку, поместив в нее закрытый ключ.
Примечание
Прежде чем использовать Gacutil.exe (программа глобального кэша сборок) для помещения сборки с отложенной подписью в глобальный кэш, зарегистрируйте сборку с помощью Sn.exe (средство строгих имен) для пропуска проверки.Например, Sn.exe –Vr delaySignedAssembly.Такой метод следует использовать только при разработке.
Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyDelaySignAttribute). |
/descr[iption]:text |
Задает строковое значение для поля Description в сборке. Если значение параметра text содержит пробел, следует заключать строку в двойные кавычки (" "). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением. Если параметр /win32res не указан, строка /description будет отображаться в проводнике Windows как ресурс Win32 Comments. Если текст — пустая строка, ресурс Win32 Comments отображается в виде одиночного пробела. Если параметр /win32res задан, параметр /description не повлияет на сведения о ресурсах Win32. Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (Description). |
/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. Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyFileVersionAttribute). |
/flags:flags |
Задает значение для поля Flags в сборке. Возможные значения параметра flags:
Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyFlagsAttribute). |
/fullpaths |
Указывает, что в программе Al.exe должны использоваться абсолютные пути для всех файлов, имена которых присутствуют в сообщении об ошибке. |
/help |
Отображает синтаксис команд и параметры программы. |
/keyf[ile]:filename |
Задает файл (filename), содержащий пару ключей или только открытый ключ для подписывания сборки. Компилятор вставляет открытый ключ в манифест сборки, а затем подписывает окончательную сборку закрытым ключом. Сведения о генерации файлов ключей и установке пар ключей в контейнеры ключей см. в разделе Средство для работы со строгими именами (Sn.exe). Для сборок с отложенной подписью в этом файле обычно помещается открытый, но не закрытый ключ. Данные открытого ключа (из пары ключей) находятся в поле .publickey сборки. Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyKeyFileAttribute). Если параметры /keyfile и /keyname указаны одновременно (в командной строке или с помощью настраиваемого атрибута) в одной компиляции, сначала будет предпринята попытка обработать контейнер, заданный параметром /keyname. В случае успеха сборка подписывается данными контейнера ключей. Если контейнер ключей не обнаружен, будет предпринята попытка использовать файл, заданный параметром /keyfile. В случае успеха сборка подписывается данными из файла ключей и сведения о ключах будут помещены в контейнер ключей (аналогично действию параметра -i в программе Sn.exe), так что при следующей компиляции параметр /keyname будет действительным. |
/keyn[ame]:text |
Задает контейнер, хранящий пару ключей. При этом сборка (присвойте ей строгое имя) будет подписана путем вставки открытого ключа в манифест сборки. Затем Al.exe подпишет окончательную сборку закрытым ключом. Для генерации пары ключей служит программа Sn.exe. Данные ключа отображаются в поле .publickey сборки. Если строка text содержит пробелы, заключите ее в двойные кавычки (" "). Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyKeyNameAttribute). |
/main:method |
Задает полное имя (class.method) метода, являющегося точкой входа при преобразовании модуля в исполняемый файл. |
/nologo |
Отключает отображение эмблемы в командной строке при вызове программы Al.exe. |
/out:filename |
Задает имя файла, создаваемого программой Al.exe. Это обязательный параметр. |
/platform:text |
Определяет конкретную платформу, на которой может выполняться данный код; допускаются варианты x86, Itanium, x64 или anycpu (по умолчанию). |
/prod[uct]:text |
Задает строковое значение для поля Product в сборке. Если значение параметра text содержит пробел, следует заключать строку в двойные кавычки (" "). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением. Если параметр /win32res не указан, строка /product отображается в проводнике Windows как ресурс Win32 Product Name. Если текст — пустая строка, ресурс Win32 Product Name отображается в виде одного пробела. Если параметр /win32res задан, параметр /product не повлияет на сведения о ресурсах Win32. Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyProductAttribute). |
/productv[ersion]:text |
Задает значение поля Product Version в сборке. Если значение параметра text содержит пробел, следует заключать строку в двойные кавычки (" "). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением. Если параметр /win32res не указан, строка /productversion будет использоваться в качестве ресурса Win32 Product Version. Если параметр /productversion не указан, ресурс Win32 Product Version будет взят из ресурса Win32 File Version. Если параметр /win32res задан, параметр /productversion не повлияет на сведения о ресурсах Win32. Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyInformationalVersionAttribute). |
/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 отображается в проводнике Windows как ресурс Win32 Description, используемый оболочкой в качестве понятного имени приложения. Оно также отображается в подменю Открыть с помощью контекстного меню типов файлов, поддерживаемых несколькими приложениями. Если текст — пустая строка, ресурс Win32 Description отображается в виде одного пробела. Если параметр /win32res задан, параметр /title не повлияет на сведения о ресурсах Win32. Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyTitleAttribute). |
/trade[mark]:text |
Задает строковое значение поля Trademark в сборке. Если значение параметра text содержит пробел, следует заключать строку в двойные кавычки (" "). Эта строка является настраиваемым атрибутом сборки и доступна для просмотра с отражением. Если параметр /win32res не указан, строка /trademark отображается в проводнике Windows как ресурс Win32 Trademark. Если текст — пустая строка, ресурс Win32 Trademark отображается в виде одного пробела. Если параметр /win32res задан, параметр /trademark не повлияет на сведения о ресурсах Win32. Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyTrademarkAttribute). |
/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. Этот параметр можно также указать в исходном коде любого модуля MSIL в качестве настраиваемого атрибута (AssemblyVersionAttribute). |
/win32icon:filename |
Внедряет в сборку файл с расширением .ico. ICO-файл придает выходному файлу нужное оформление в проводнике Windows. |
/win32res:filename |
Вставляет файл ресурсов Win32 (RES-файл) в выходной файл. Файл ресурсов Win32 может быть создан компилятором ресурсов. Компилятор ресурсов вызывается при компиляции программы Visual C++; RES-файл создается из RC-файла. |
@filename |
Задает файл ответов, содержащий команды Al.exe. Команды в файле ответов могут быть расположены в отдельных строках или в одну строку с одним или несколькими пробелами в качестве разделителей. |
/? |
Отображает синтаксис команд и параметры программы. |
Заметки
Все компиляторы Visual Studio создают сборки. Однако при наличии одного или нескольких модулей (метаданных без манифеста) можно создать сборку с манифестом в отдельном файле при помощи инструмента Al.exe.
Для установки сборок в кэш, удаления сборок из кэша и просмотра содержимого кэша служит инструмент глобального кэша сборок (Gacutil.exe).
Пример
Следующая команда создает исполняемый файл t2a.exe со сборкой из модуля t2.netmodule. Точкой входа является метод Main в MyClass.
al t2.netmodule /target:exe /out:t2a.exe /main:MyClass.Main
См. также
Задачи
Ссылки
Ошибки и предупреждения программы Al.exe
Sn.exe (средство строгих имен)
Gacutil.exe (программа глобального кэша сборок)
Командная строка Visual Studio и пакета Windows SDK
Другие ресурсы
Программирование с использованием сборок
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Апрель 2011 |
Добавлены сведения об использовании командных строк Visual Studio и Windows SDK. |
Улучшение информации. |