ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅, ΠΎΡ‡Π΅Π½ΡŒ быстро...
Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ вмСстС Π΄ΠΎ ΠΏΠΎΠ±Π΅Π΄Ρ‹

Новый Ρ‚ΠΈΠΏ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ – сборки

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π‘Π±ΠΎΡ€ΠΊΠ° — это Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ², ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Π’ ΡΠ±ΠΎΡ€ΠΊΡƒ входят управляСмыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, изобраТСния). Один ΠΈΠ· ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, входящих Π² ΡΠ±ΠΎΡ€ΠΊΡƒ, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΡŽ (manifest). ЀизичСски дСкларация являСтся просто Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Когда компилятор создаСт управляСмый ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΈ ΡΠ±ΠΎΡ€ΠΊΠΎΠΉ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Новый Ρ‚ΠΈΠΏ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ – сборки (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ .NET Framework ΡΠΎΠ·Π΄Π°ΡŽΡ‚ управляСмыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ΠΊΠΎΠ΄ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌ языкС CIL ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅. Однако CLR нс ΠΌΠΎΠΆΠ΅Ρ‚ нСпосрСдствСнно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ управляСмыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Π‘Π°Π·ΠΎΠ²ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹, управлСния вСрсиями ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ывания Π² .NET Framework являСтся Π½Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π° сборка (assembly).

Π‘Π±ΠΎΡ€ΠΊΠ° — это Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ², ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Π’ ΡΠ±ΠΎΡ€ΠΊΡƒ входят управляСмыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, изобраТСния). Один ΠΈΠ· ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, входящих Π² ΡΠ±ΠΎΡ€ΠΊΡƒ, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΡŽ (manifest). ЀизичСски дСкларация являСтся просто Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Когда компилятор создаСт управляСмый ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΈ ΡΠ±ΠΎΡ€ΠΊΠΎΠΉ, дСкларация просто помСщаСтся Π² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ модуля. ЛогичСски дСкларация — это описаниС всСй сборки. НаиболСС Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ элСмСнтами Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

  • β€’ имя сборки;
  • β€’ список всСх Ρ„Π°ΠΉΠ»ΠΎΠ² сборки вмСстС с ΠΊΡ€ΠΈΠΏΡ‚ографичСскими Ρ…Π΅Ρˆ-значСниями, вычислСнными ΠΏΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ²;
  • β€’ список Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, экспортируСмых Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ сборки, ΠΈ ΠΈΠ½Ρ„ормация, ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ эти Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹;
  • β€’ Π½ΠΎΠΌΠ΅Ρ€ вСрсии Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ major.minor.build.revision (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1.0.3705−0).

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ сборок содСрТит ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ», Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ содСрТат ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ². ВсС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΡΠΎΡΡ‚Π°Π²Π΅ ΠΎΠ΄Π½ΠΎΠΉ сборки Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅. Когда с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ компилятора C# создаСтся простой EXE ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ρ‚ΠΎ ΠΎΠ½ ΡΠ²Π»ΡΠ΅Ρ‚ся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ управляСмым ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ, Π½ΠΎ ΠΈ ΡΠ±ΠΎΡ€ΠΊΠΎΠΉ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ компиляторов ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ управляСмыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ сборками, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊ ΡΠ±ΠΎΡ€ΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚. Π’ ΡΠΎΡΡ‚Π°Π² .NET Framework SDK Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° AL (Assembly Linker) для объСдинСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΡΠ±ΠΎΡ€ΠΊΠΈ. ΠœΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ сборки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ слуТат для объСдинСния ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, написанных Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках, ΠΈ Π΄Π»Ρ объСдинСния управляСмых ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, содСрТащими изобраТСния Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JPEG ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ рСсурсы. ΠœΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ сборки Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для раздСлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Π΅ части, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ прилоТСния Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚.

ΠŸΡ€ΠΈ отсутствии ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΉ компиляторы Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ нСстрого ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ (weakly named) сборки. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сборка Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ криптографичСской подписи ΠΈ Π΄Π»Ρ Π΅Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ CLR ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ (ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ собой лишь имя Ρ„Π°ΠΉΠ»Π° сборки Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ). Однако сборки ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ ΡΡ‚Ρ€ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ‹ (strongly named). Π’Π°ΠΊΠΈΠ΅ сборки содСрТат ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ подпись, ΡΠ²Π»ΡΡŽΡ‰ΡƒΡŽΡΡ Ρ…ΡΡˆ-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, сгСнСрированным для Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ сборки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранится ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡.

Цифровая подпись, гСнСрируСмая с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° создатСля сборки, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΡŽ сборки (Π° Π·Π½Π°Ρ‡ΠΈΡ‚, саму сборку) устойчивой ΠΊ ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠ°ΠΌ. Для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ строго ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΉ сборки слуТат имя сборки, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, Π½ΠΎΠΌΠ΅Ρ€ вСрсии ΠΈ ΡΡ‚Ρ€ΠΎΠΊΠ° Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… стандартов, Ссли ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ. Π›ΡŽΠ±ΠΎΠ΅, Π΄Π°ΠΆΠ΅ самоС нСбольшоС, ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ являСтся достаточным, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ сборки.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ