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

Обновлен: Ноябрь 2007

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

c405shex.alert_note(ru-ru,VS.90).gifПримечание.

Чтобы избежать виртуализации на компьютере Windows Vista, сборка должна включать манифест win32 с указанием запрошенного уровня выполнения. Запуская al.exe непосредственно из командной строки, можно либо внедрить манифест в файл ресурсов win32, либо с помощью программы mt.exe присоединить манифест позже в процессе построения. В Visual Studio 2008 компиляторы C# и Visual Basic автоматически внедряют манифест win32 в сборку. Дополнительные сведения см. в разделе /win32manifest (импорт пользовательского файла манифеста Win32) (параметры компилятора C#).

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 (ссылка на ресурс платформы .NET Framework) (параметры компилятора 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+. После тестирования можно полностью подписать сборку, поместив в нее закрытый ключ.

c405shex.alert_note(ru-ru,VS.90).gifПримечание.
Прежде чем использовать Программа глобального кэша сборок (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:

0x0000

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

0x0010

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

0x0020

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

0x0030

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

Этот параметр можно также указать в исходном коде любого модуля 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 будет равно количеству секунд, прошедших с полуночи 1 января 2000 г. по местному времени, деленному на 2.

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

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

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

См. также

Ссылки

Инструменты .NET Framework

Ошибки и предупреждения программы Al.exe

Средство строгих имен (Sn.exe)

Программа глобального кэша сборок (Gacutil.exe)

Командная строка пакета SDK

Другие ресурсы

Программирование с использованием сборок