Наш канал в telegram канал codeby

Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

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


      Наш канал в telegram канал codeby

      Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

      файл сборка

      Состав файла .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-код, метаданные и манифест, присутствуют всегда.

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

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

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


      Чат codeby в telegram перезагрузка

      Обсуждаем вопросы информационной безопасности, методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие.  Подробнее ...

      Похожие темы

      подключение динамической библиотеки (.dll)... Внешние сборки В этой статье поговорим о внешних сборках, которые чаще всего представлены в виде dll файлов, которые можно добавить в приложение и пол...
      Зачем нужны пространства имён (namespace) в языке ... Пространства имён (namespace) Одним из основных компонентов платформы .NET Framework является — библиотека классов платформы сокращено (FCL...
      Как изменить код программы без исходника... Как изменить код программы, если потерян исходник Бывают ситуации, когда под рукой нет исходника, а Вам срочно требуется внести изменения в коде, нап...
      Как созданить dll библиотеку?... Cоздание файла dll Очень часто в своей работе, Вы будете сталкиваться с такой ситуацией. Перед вами стоит задача, нужно написать программу «...