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


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

Примечание.

Эта статья относится к .NET Framework. Он не применяется к более новым реализациям .NET, включая .NET 6 и более поздние версии.

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

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

Примечание.

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

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

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

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

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

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

См. также