Що таке .NET збори? Я переглянув мережу і не можу зрозуміти визначення.
Що таке .NET збори? Я переглянув мережу і не можу зрозуміти визначення.
Відповіді:
Простіше кажучи: шматок (попередньо складеного) коду, який може бути виконаний середовищем виконання .NET. Програма .NET складається з однієї або декількох збірок.
.class
файл у Java-світі?
Збірка - найменша одиниця розгортання програми .net. Це може бути dll або exe .
В основному це два типи:
Приватна асамблея: dll або exe, яка є власністю лише однієї програми. Зазвичай він зберігається в кореневій папці програми
Загальнодоступна / спільна збірка: це dll, який може використовуватися одночасно кількома програмами. Спільна збірка зберігається в GAC, тобто глобальному кеш- зборі .
Звучить важко? Naa ....
GAC - просто папка C: \ Windows \ Assembly, де ви можете знайти загальнодоступні збори / dll усіх програмних засобів, встановлених на вашому ПК.
Існує також третій і найменш відомий тип збірки: супутникова збірка .
Супутникова збірка містить лише статичні об'єкти, такі як зображення та інші невиконані файли, необхідні програмі.
Сподіваюся, це допоможе читачам!
Збори
Під час складання програми створений код MSIL зберігається у зборі. Асамблеї включають як виконувані файли додатків, які можна запускати безпосередньо з Windows без необхідності будь-яких інших програм (у них розширення файлу .exe), так і бібліотеки (з розширенням .dll) для використання іншими програмами.
Крім того, що містить MSIL, до складу збірок входить також метаінформація (тобто інформація про інформацію, що міститься у складі, також відома як метадані) та додаткові ресурси (додаткові дані, що використовуються MSIL, наприклад звукові файли та зображення). Метаінформація дає змогу складанням повністю описуватись. Для використання збірки вам не потрібна інша інформація, тобто ви уникаєте ситуацій, таких як невдавання необхідних даних до системного реєстру тощо, що часто було проблемою при розробці інших платформ.
Це означає, що розгортання програм часто настільки ж просто, як і копіювання файлів у каталог на віддаленому комп’ютері. Оскільки додаткова інформація не потрібна в цільових системах, ви можете просто запустити виконуваний файл з цього каталогу і (припустимо, що .NET CLR встановлений) вам добре йти.
Звичайно, ви не обов’язково хочете включити все необхідне для запуску програми в одному місці. Ви можете написати якийсь код, який виконує завдання, необхідні для декількох додатків. У подібних ситуаціях часто корисно розміщувати код багаторазового використання в доступному для всіх додатків місці. У .NET Framework це кеш глобальної асамблеї (GAC). Розміщення коду в GAC просте - ви просто поміщаєте збірку, що містить код, в каталог, що містить цей кеш.
Збірка - це фактичний .dll-файл на вашому жорсткому диску, де зберігаються класи в .NET Framework. Наприклад, всі класи, що містяться в ASP.NET Framework, розташовані у складі під назвою System.Web.dll.
Точніше, збірка - це основний блок розгортання, безпеки та контролю версій у .NET Framework. Оскільки збірка може охоплювати декілька файлів, збірку часто називають "логічним" dll.
Примітка
.NET Framework (версія 2.0) включає 51 збірку.
Існує два типи зборів: приватні та спільні. Приватна збірка може використовуватися лише однією програмою. З іншого боку, спільну збірку можуть використовувати всі програми, розташовані на одному сервері.
Спільні збори розміщені в кеш-пам'яті глобальної асамблеї (GAC). Наприклад, збірка System.Web.dll та всі інші збірки, що входять до .NET Framework, розташовані в кеш-пам'яті глобальної асамблеї.
Примітка
Кеш глобальної асамблеї фізично розташований у папці \ WINDOWS \ Assembly на вашому комп'ютері. У папці \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 є окрема копія кожної збірки. Перший набір збірок використовується під час виконання, а другий - під час компіляції.
Перш ніж використовувати клас, який міститься у складі у вашій програмі, ви повинні додати посилання на збірку. За замовчуванням додаток ASP.NET посилається на найпоширеніші збірки, що містяться в кеші глобальної асамблеї:
mscorlib.dll
System.dll
System.Configuration.dll
System.Web.dll
System.Data.dll
System.Web.Services.dll
System.Xml.dll
System.Drawing.dll
System.EnterpriseServices.dll
System.Web.Mobile.dll
Щоб використовувати будь-який конкретний клас у .NET Framework, потрібно зробити дві речі. По-перше, ваша програма повинна посилатися на збірку, що містить клас. По-друге, ваша програма повинна імпортувати простір імен, пов'язаний з класом.
У більшості випадків ви не переймаєтесь посиланням на необхідну збірку, оскільки на найпоширеніші збори посилаються автоматично. Однак якщо вам потрібно скористатись спеціалізованою збіркою, вам потрібно додати посилання прямо на збірку. Наприклад, якщо вам потрібно взаємодіяти з Active Directory, використовуючи класи в просторі імен System.DirectoryServices, тоді вам потрібно буде додати посилання на збірку System.DirectoryServices.dll до вашої програми.
Кожен запис класу в документації .NET Framework SDK містить список складання та простору імен, пов'язаних з класом. Наприклад, якщо ви шукаєте клас MessageQueue в документації, ви виявите, що цей клас знаходиться в просторі імен System.Messaging, розташованому в зборі System.Messaging.dll.
Якщо ви використовуєте Visual Web Developer, ви можете додати посилання на збірку явно, вибравши опцію меню Веб-сайт, Додати довідку та вибравши назву збірки, на яку потрібно посилатися. Наприклад, додавання посилання на результати результатів складання System.Messaging.dll до файлу веб-конфігурації в Лістингу 1.4 додається до вашої програми.
Напр. Web.Config
enter code here
Якщо ви не бажаєте використовувати Visual Web Developer, тоді ви можете додати посилання на збірку System.Messaging.dll, створивши файл у наведеному вище прикладі вручну
Вікіпедія повинна сказати:
У рамках Microsoft .NET, збірка - це частково складена бібліотека кодів для використання в розгортанні, версії та безпеці. Існує два типи: технологічні збірки (EXE) та збірки бібліотек (DLL). Збірка процесу являє собою процес, який використовуватиме класи, визначені у складі бібліотеки. .NET збірки містять код у CIL, який, як правило, генерується з мови CLI, а потім компілюється в машинну мову під час виконання компілятором CLR, що знаходиться в часі. Збірка може складатися з одного або декількох файлів. Файли коду називаються модулями. Збірка може містити більше одного модуля коду, і оскільки для створення модулів коду можна використовувати різні мови, технічно можливо використовувати кілька різних мов для створення збірки.
Якщо ви дійсно переглянули, це допоможе, якщо ви поясніть те, чого не розумієте
Дивіться це :
У рамках Microsoft .NET, збірка - це частково складена бібліотека кодів для використання в розгортанні, версії та безпеці
фізична колекція класу, інтерфейсу, enum тощо, яка знаходиться в коді IL. Який може бути .EXE або .DLL файл .EXE - це виконуваний файл, а .DLL може динамічно використовуватись у будь-якій підтримуваній мові .net.
Збірка - це одиниця виконання, що складається з типів та інших ресурсів. Усі типи в зборі мають однаковий номер версії.
Часто одна збірка має лише один простір імен і використовується однією програмою. Але він може охоплювати декілька просторів імен. Також один простір імен може поширюватися на декілька збірок. У великих проектах збірка може складатися з декількох файлів, які об'єднуються маніфестом (тобто змістом).
У C # збірка - це найменша розгортання програми .Net. Це може бути dll або exe. Вона має два типи: 1. Приватна асамблея 2. Публічна / Спільна асамблея
Окрім прийнятої відповіді, я хочу навести вам приклад!
Наприклад, ми всі використовуємо
System.Console.WriteLine()
Але де код для System.Console.WriteLine !?
який код фактично ставить текст на консоль?
Якщо ви подивитесь на першу сторінку документації для класу Console , ви побачите біля верху наступне: Збірка: mscorlib (в mscorlib.dll) Це вказує на те, що код для класу Console розташований у асамблеї названий mscorlib. Збірка може складатися з декількох файлів, але в цьому випадку це лише один файл, який є бібліотекою динамічних посилань mscorlib.dll.
Файл mscorlib.dll дуже важливий у .NET, він є основною DLL для бібліотек класів у .NET, і він містить усі основні .NET класи та структури.
якщо ви знаєте C або C ++, зазвичай вам потрібна директива #include вгорі, яка посилається на файл заголовка. Файл include надає прототипи функцій компілятору. навпаки. Компілятору C # не потрібні файли заголовків. Під час компіляції компілятор C # отримує доступ до файлу mscorlib.dll безпосередньо та отримує інформацію з метаданих у цьому файлі, що стосуються всіх класів та інших типів, визначених у них.
Компілятор C # може встановити, що mscorlib.dll дійсно містить клас з ім'ям Console в просторі імен з назвою System методом WriteLine, який приймає один аргумент рядка типу.
Компілятор C # може визначити, що виклик WriteLine є дійсним, і компілятор встановлює посилання на збірку mscorlib у виконуваному файлі.
за замовчуванням компілятор C # отримає доступ до mscorlib.dll, але для інших DLL вам потрібно повідомити компілятору про збірку, в якій розташовані класи. Вони відомі як посилання.
Я сподіваюся, що це вже зараз зрозуміло!
Від DotNetBookZero Чарльз пітзольд
MSDN має гарне пояснення :
Асамблеї є складовими додатків .NET Framework; вони утворюють основний блок розширення, контролю версій, повторного використання, масштабування активації та дозволів безпеки. Збірка - це сукупність типів та ресурсів, створених для спільної роботи та формування логічної одиниці функціональності. Асамблея забезпечує загальну мову виконання з інформацією, яку вона повинна знати про реалізацію типів. На час виконання тип не існує поза контекстом збірки.
Збірка - це сукупність типів і ресурсів, що утворює логічну одиницю функціональності. Усі типи в .NET Framework повинні існувати в зборах; загальна мова виконання не підтримує типи поза складаннями. Кожен раз, коли ви створюєте додаток Microsoft Windows®, службу Windows, бібліотеку класів або іншу програму з Visual Basic .NET, ви створюєте одну збірку. Кожна збірка зберігається як .exe або .dll файл.
Джерело: https://msdn.microsoft.com/en-us/library/ms973231.aspx#assenamesp_topic4
Для тих, хто з Java-фоном, як я, сподіваюся, наступна діаграма пояснює поняття
Збірки подібно до файлів jar (містять кілька файлів .class). Ваш код може посилатися на існуючу збірку або сам код може бути опублікований як збірка для іншого коду для посилання та використання (ви можете вважати це як jar файли на Java, які ви можете додати у залежність свого проекту).
Наприкінці дня збірка - це компільований код, який можна запустити в будь-якій операційній системі із встановленим CLR. Це те саме, що сказати .class файл або пакетну банку може працювати на будь-якій машині зі встановленим JVM.
У .Net складанням може бути:
Колекція різних керованих частин , що містять
Types (or Classes)
,Resources (Bitmaps/Images/Strings/Files)
,Namespaces
,Config Files
складенийPrivately
абоPublicly
; розгорнуто в папкуlocal
абоShared (GAC)
папку;discover-able
іншимиprograms/assemblies
та; може бути редактором версій.
Оскільки збірка - це найменша одиниця безпеки версій, розгортання та повторного використання коду в Microsoft.Net.
Це містить:
- Assembly Identity
- Manifest
- Metadata
- MSIL Code
- Security Information
- Assembly Header
Збірка - це основна частина програмування з .NET Framework. Він містить код, за допомогою якого CLR виконує код MSIL (Microsoft Intermediate Language) у портативному виконуваному файлі, не виконуватиметься, якщо у нього немає асоційованого маніфесту збірки.
Програми .NET створюються шляхом з'єднання будь-якої кількості збірок. Простіше кажучи, збірка - це не що інше, як переоформлений, самоописуючий двійковий код (DLL або EXE), що містить деяку колекцію типів (класи, інтерфейси, структури тощо) та необов'язкові ресурси (зображення, таблиці рядків і багато чого іншого). Одне, про що слід зараз болісно усвідомлювати, - це те, що внутрішня організація збірки .NET - це не що інше, як внутрішня організація класичного COM-сервера (незалежно від розширення розширених файлів).
У .NET, коли ми компілюємо свій вихідний код, тоді збірка генерується у Visual Studio. Збірка складається з двох частин Manifest та IL (Intermediate Language). Manifest містить метадані збирання - це вимоги до версії збірки, ідентифікатор безпеки, імена та хеши всіх файлів, що складають збірку. IL містить інформацію про класи, конструктори, основний метод тощо.
Я вважав це посилання дуже корисним. Це навіть дає уявлення про те, як ІЛ грає роль у .NET.
http://www.codeguru.com/column/csharp_learning/article.php/c5845/C-FAQ-15--What-is-an-Assembly.htm
Рішення Visual Studio складаються з одного або декількох проектів. Наприклад: Консольні проекти можуть виробляти збірку . Збірка - це логічний фрагмент коду, який може бути відправлений клієнтам, а фізично - .EXE (виконувана програма) або .DLL (можуть бути повторно використані іншими програмами).
Асамблеї містять інформацію про вміст, версії та залежності, додатки, які їх використовують, не повинні покладатися на зовнішні джерела, такі як реєстр в системах Windows, щоб вони нормально функціонували. Асамблеї зменшують конфлікти .dll та роблять ваші програми надійнішими та легшими у розгортанні.
Це сукупність типів та ресурсів, які побудовані для спільної роботи та формування логічної одиниці функціональності. Асамблеї мають форму виконуваних файлів (.exe) або динамічної бібліотеки посилань (.dll) і є складовими додатків .NET. Вони надають загальній мові виконання інформацію, яку вона повинна знати про реалізацію типів.
Кожна збірка має файл маніфесту збірки. Подібно до змісту маніфест збірки містить:
Щоб використовувати збірку в додатку, потрібно додати посилання на нього. Після посилання на збірку всі доступні типи, властивості, методи та інші члени просторів імен доступні вашій програмі так, ніби їх код був частиною вашого вихідного файлу.
Таким чином, ми всі знаємо, що наш вихідний код перетворений в проміжну мову Microsoft (MSIL). Під час виконання CLR (загальна мова виконання) перетворює код MSIL в Native з компілятором JIT. Перед перетворенням MSIL-коду необхідно пройти процес перевірки, який вивчає MSIL + MetaData (назва збірки, версія, посилання): щоб з’ясувати, чи можна визначити код безпечним для типу. якщо він проходить перевірку, MSIL перетворюється на Native Code. Усі викликані методи перетворюються на машинну мову та зберігаються в кеші для подальшого використання.