.NET Сборка (assembly)

.NET Сборка (assembly)

И так мы установили и бегло познакомились с основными компонентами платформы .NET Framework, но для того, чтобы двигаться дальше, необходимо познакомиться с таким понятием, как сборка (assembly)

Сборка — это наименьшая единица в мире .NET, которая представлена в виде файлов с расширением .exe или .dll, и содержит внутри себя код на промежуточном языке IL (Intermediate Language).

Чтобы лучше понять, что такое .net сборка, разберём небольшой пример.

Компиляция и создание файла сборки

Для начала создадим новый консольный проект и напишем в нём любой произвольный код. Для того, чтобы получить сборку, выполните одно из следующих действий:

  1. нажмите клавишу F6, после чего произойдет
  1. компиляция проекта (её выполнит компилятор языка c# — csc.exe)
  2. создание файла сборки

Visual Studio 4.0 Build Solution

  • Ещё один способ, заключается в нажатие клавиши: F5 или сочетания клавиш: Ctrl+F5, вместо F6
    1. компиляция проекта
    2. создание файла сборки
    3. запуск приложения в режиме отладки или без отладки (Ctrl+F5)
    4. Visual Studio 4.0 Start Debugging

      Так же хочется отметить, что для каждого языка .NET существует свой компилятор, например: для языка си шарп компилятор csc.exe (C-Sharp Compiler), для Visual Basic vbс.exe и так далее.

      И так Вы выбрали один из способов описанных выше, выполнили компиляцию и получили файл сборки. Возникает вопрос, где искать созданный файл?

      Путь к файлу .NET Сборки

      Перейдите в окно Solution Explorer и нажмите правой кнопкой мыши на имени текущего проекта, на рисунке он обозначен словом Auto и выделен, синим цветом.

      solution explorer

      далее выберите пункт: Properties

      пункт меню Properties

      В открывшемся окне, перейдите на вкладку «Build»

      свойства проекта

      найдите надпись: «Output Path», в этой строке указан путь к файлу сборки: «bin\Debug\», для того, чтобы посмотреть полный путь или изменить текущий, используйте кнопку Browse, которая расположена рядом с этой строкой.

      Output Path

      Путь к файлу сборку определён.

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

      Нажмите на значок папки, либо используйте сочетание клавиш: Ctrl+O

       Open Project

      После чего откроется окно содержащие папки и файлы текущего проекта

      файлы проекта

      Зайдите в папку bin, затем в папку Debug, внутри папки Вы увидите файл с именем нашего проекта и расширением .exe или .dll. Расширение файла зависит от того, какой тип приложения Вы создаете в данный момент, будь-то динамическая библиотека(.dll), или исполняемый файл(.exe). На рисунке нужный нам файл помечен жёлтым цветом, на остальные файлы пока не обращайте внимания, они создаются во время режима отладки.

      файл сборка

      Состав файла .NET сборки:

      На каком бы языке мы не писали код в платформе .NET, после компиляции, Вы получаете однофайловую сборку (один файл с расширением .exe или .dll), которая содержит следующие компоненты:

      1. инструкции (код) на промежуточном языке IL
      2. Метаданные
      3. Манифест
      4. Ресурсы

      net сборка

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

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

      Метаданные

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

      Типы: класс, интерфейс, структура, перечисление, делегат.
      Члены: поля, свойства, методы, события, конструкторы и так далее

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

      Например: Вы создаёте новый проект. Создаете новый класс Animal (тип). Производите компиляцию и получаете файл сборку. Который по мимо выше описанных компонентов, так же будет содержать и метаданные нашего типа, в нашем случаи класса Animal. Такие как, конструкторы, базовый или абстрактный класс для нашего класса Animal, реализуемые интерфейсы, а так же члены, которые содержит наш класс.

      Для просмотра метаданных, а так же других компонентов сборки применяется утилита ildasm, о которой Вы можете прочитать в следующей статье.

      Манифест

      Помимо выше перечисленного сборка так же содержит ещё одни метаданные, который описывает саму сборку, такие метаданные называют — манифест. Эти данные формируются так же автоматически в процессе компиляции.

      Файл манифест содержит такую информацию, как

      1. имя сборки
      2. название фирмы
      3. текущая версия сборки
      4. например:1.0.0.0

      5. список ссылок на внешние сборки
      6. например:System.Windows.Forms.dll

      7. авторские права
      8. и многое другое

      Ресурсы

      И так 4 компонент сборки, это ресурсы.

      Ресурсы — это добавленные в нашу сборку: значки, картинки, звуки, иконки, и другие данные, которые являются необязательными.

      Если в приложение нам не нужны звуки и картинки, мы просто не будем их добавлять. Соответственно наша сборка не будет содержать ресурсы, но при этом стоит помнить, что IL-код, метаданные и манифест, присутствуют всегда.

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

      Так же стоит знать, что сборки бывают нескольких типов: общие, приватные и дружественные. Более подробно о типах сборок, вы узнаете в следующих статьях.

      Читайте также:

      2 комментария

      1. Поясните пожалуйста, как изменить данные в файле манифест, конкретно интересует пункты 1, 2, 3 и 5

      Leave a Reply

      Ваш e-mail не будет опубликован. Обязательные поля помечены *

      *