Поделиться через


Многофайловые сборки

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

Многофайловые сборки можно создавать с помощью компилятора командной строки или в Visual Studio 2005, используя Visual C++. Один из файлов сборки обязательно должен содержать ее манифест. Кроме того, сборка, запускающая приложение, должна содержать точку входа, такую как метод Main или WinMain.

Например, предположим, что есть приложение, содержащее два модуля кода — Client.cs и Stringer.cs. Модуль Stringer.cs создает пространство имен myStringer, на которое ссылается код в модуле Client.cs. Модуль Client.cs содержит метод Main, который является точкой входа приложения. В этом примере выполняется компиляция двух модулей кода, затем создается третий файл, содержащий манифест сборки, который и запускает приложение. Манифест сборки ссылается и на модуль Client, и на Stringer.

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

Многофайловые сборки могут иметь только одну точку входа, даже если сборка содержит несколько модулей кода.

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

  • Для объединения модулей, написанных на различных языках. Это наиболее частая причина создания многофайловой сборки.

  • Для оптимизации загрузки приложения путем выделения редко используемых типов в модуль, загружаемый только при необходимости.

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

    При создании приложений, загружаемых с помощью тега <object> в обозреватель Microsoft Internet Explorer, важно создавать именно многофайловые сборки. Согласно этому сценарию создается отдельный от модулей кода файл, который содержит только манифест сборки. Обозреватель Internet Explorer в первую очередь загружает манифест, а затем создает рабочие потоки для загрузки любых требуемых дополнительных модулей или сборок. При загрузке файла, содержащего манифест сборки, обозреватель Internet Explorer не реагирует на действия пользователя. Чем меньше размер файла, содержащего манифест сборки, тем меньше времени обозреватель Internet Explorer будет оставаться в таком состоянии.

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

Сразу же после создания сборки можно подписать файл, содержащий манифест сборки (и, следовательно, подписать саму сборку), или же задать для файла (и для сборки) строгое имя и поместить его в глобальный кэш сборок.

См. также

Задачи

Практическое руководство. Создание многофайловой сборки

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

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