Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π—Π«Πš ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ˜Π ΠžΠ’ΠΠΠ˜Π― Π‘# 2005 И ΠŸΠ›ΠΠ’Π€ΠžΠ ΠœΠ .NET 2.0. 3-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 100

Автор Π­Π½Π΄Ρ€ΡŽ ВроСлсСн

β€’ ΠŸΠΎΠ½ΡΡ‚Π½ΠΎΠ΅ имя ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ, являСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°)

β€’ НомСр вСрсии ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌΡ‹ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° [AssemblyVersion])

β€’ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° (Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌΠΎΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° [AssemblyKeyFile])

β€’ ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌΠΎΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° [AssemblyCulture])

β€’ ВстроСнная цифровая подпись, создаваСмая с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ всСго содСрТимого ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° с использованиСм значСния сСкрСтного ΠΊΠ»ΡŽΡ‡Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ строгоС имя для ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, вашим ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΈ сСкрСтного) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ sn.exe .NET Framework 2.0 SDK (Ρ‡Ρ‚ΠΎ ΠΌΡ‹ с Π²Π°ΠΌΠΈ сдСлаСм Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅). Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° sn.exe Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ», ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ *.snk (Strong Name Key – ΠΊΠ»ΡŽΡ‡ строгого ΠΈΠΌΠ΅Π½ΠΈ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π΄Π°Π½Π½Ρ‹Π΅ Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ…, Π½ΠΎ матСматичСски связанных ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (это Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ "ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ" ΠΈ "сСкрСтный" ΠΊΠ»ΡŽΡ‡ΠΈ). Если компилятор C# ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ мСстС нахоТдСния Ρ„Π°ΠΉΠ»Π° *.snk, Ρ‚ΠΎ Π²ΠΎ врСмя компиляции Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Π±ΡƒΠ΄Π΅Ρ‚ записано Π² манифСст создаваСмого ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ лСксСмы .publickey.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ C# Ρ‚Π°ΠΊΠΆΠ΅ сгСнСрируСт Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° основС всСго содСрТимого ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (CIL-ΠΊΠΎΠ΄Π°, ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚.Π΄.). Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ ΠΈΠ· Π³Π»Π°Π²Ρ‹ 3, Ρ‡Ρ‚ΠΎ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ прСдставляСт собой числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‰Π΅Π΅ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π’Π°ΠΊ, ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ любой части ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (Π΄Π°ΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ-СдинствСнного символа строкового Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°) .NET-компилятор Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎΡ‚ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ комбинируСтся с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ сСкрСтного ΠΊΠ»ΡŽΡ‡Π° ΠΈΠ· Ρ„Π°ΠΉΠ»Π° *. snk для получСния Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи, встраиваСмой Π² CLR-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. ΠŸΡ€ΠΎΡ†Π΅ΡΡ создания строго ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° схСматичСски ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рис. 11.17.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ сСкрСтного ΠΊΠ»ΡŽΡ‡Π° Π½ΠΈΠ³Π΄Π΅ Π² манифСстС прСдставлСны Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ – ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ создании Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи содСрТимого ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (Π² совокупности с Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ). Напомним, Ρ‡Ρ‚ΠΎ основной Ρ†Π΅Π»ΡŒΡŽ примСнСния ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π½Π° основС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΈ сСкрСтного ΠΊΠ»ΡŽΡ‡Π΅ΠΉ являСтся гарантия Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎ "всСлСнной" .NET никакая ΠΏΠ°Ρ€Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΡƒΠΌΠΎΠ² Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ². Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅, ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ процСсса создания строгого ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² структуру GAC.

Рис. 11.17. Π’ процСссС компиляции Π½Π° основС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΈ сСкрСтного ΠΊΠ»ΡŽΡ‡Π΅ΠΉ гСнСрируСтся цифровая подпись, которая Π·Π°Ρ‚Π΅ΠΌ встраиваСтся Π² ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π‘Ρ‚Ρ€ΠΎΠ³ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π½Π°Ρ€ΡƒΡˆΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΏΡ‹Ρ‚Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ этого Π² Ρ€Π°ΠΌΠΊΠ°Ρ… .NET считаСтся цСлСсообразным ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ строгоС имя для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для установки Π² структуру GAC.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ строгого ΠΈΠΌΠ΅Π½ΠΈ для CarLibrary.dll

Π”Π°Π²Π°ΠΉΡ‚Π΅ продСмонстрируСм вСсь процСсс назначСния строгого ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌΡƒ Π±Π»ΠΎΠΊΡƒ CarLibrary, созданному Π² этой Π³Π»Π°Π²Π΅ Π²Ρ‹ΡˆΠ΅. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Ρ‚ΠΎΠΉ срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ sn.exe. Π­Ρ‚ΠΎΡ‚ инструмСнт ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство ΠΎΠΏΡ†ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π½ΠΎ Π½Π°ΠΌ сСйчас понадобится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π»Π°Π³ -k, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ», содСрТащий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΈ сСкрСтного ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ MyTestKeyPair Π½Π° своСм дискС C ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π½Π΅Π΅ Π² ΠΎΠΊΠ½Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки .NET. ПослС этого, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» MyTestKeyPair.snk, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

sn -k MyTestKeyPair.snk

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² Π΄Π°Π½Π½Ρ‹Π΅ своСго ΠΊΠ»ΡŽΡ‡Π°, сообщитС компилятору C# ΠΎ Ρ‚ΠΎΠΌ, Π³Π΄Π΅ размСщаСтся Ρ„Π°ΠΉΠ» MyTestKeyPair.snk. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ создании Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ пространства для любого Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° C# Π² Visual Studio 2005 ΠΎΠ΄ΠΈΠ½ ΠΈΠ· исходных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ имя AssemblyInfo.cs (ΠΎΠ½ размСщаСтся Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΡƒΠ·Π»Π° Properties Π² ΠΎΠΊΠ½Π΅ Solution Explorer). Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» содСрТит ряд свойств, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ. Атрибут AssemblyKeyFile уровня ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для информирования компилятора ΠΎ мСстС располоТСния Ρ„Π°ΠΉΠ»Π° *.snk. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ строкового ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

[assembly: AssemblyKeyFile (@"C:\MyTestKeyPair\MyTestKeyPair.snk".)]

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… строгого ΠΈΠΌΠ΅Π½ΠΈ общСдоступного ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° являСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ вСрсии, ΠΌΡ‹ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ Π΅Π³ΠΎ ΠΈ для CarLibrary.dll. Π’ Ρ„Π°ΠΉΠ»Π΅ AssemblyInfo.cs Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ свойство, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ AssemblyVersion. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся 1.0.*.

[assembly: AssemblyVersion("1.0.*")]

Напомним, Ρ‡Ρ‚ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ вСрсии .NET компонуСтся ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… числовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Visual Studio 2005 автоматичСски Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° (Ρ‡Ρ‚ΠΎ обозначаСтся Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹ΠΌ символом "*") ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ компиляции. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ фиксированноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° вСрсии для ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠΉ символ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ значСниями Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

// Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π½ΠΎΠΌΠ΅Ρ€Π° вСрсии;

// β€ΉΠ³Π»Π°Π²Π½Ρ‹ΠΉβ€Ί.β€ΉΠ΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉβ€Ί.β€ΉΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ°β€Ί.β€ΉΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚β€Ί

// Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта допустимы значСния ΠΎΡ‚ 0 Π΄ΠΎ 65535.

[.assembly: AssemblyVersion ("1.0.0.0")]

Π’Π΅ΠΏΠ΅Ρ€ΡŒ компилятор C# ΠΈΠΌΠ΅Π΅Ρ‚ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для гСнСрирования Π΄Π°Π½Π½Ρ‹Ρ… строгого ΠΈΠΌΠ΅Π½ΠΈ (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° [AssemblyCulture], Π±ΡƒΠ΄ΡƒΡ‚ "унаслСдованы" Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ вашСй ΠΌΠ°ΡˆΠΈΠ½Ρ‹). Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° CarLibrary ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ildasm.exe ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π΅Π΅ манифСст. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ лСксСма .publickey, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ докумСнтируСтся информация ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°, Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ.ver прСдставлСн Π½ΠΎΠΌΠ΅Ρ€ вСрсии, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ [AssemblyVersion] (рис. 11.18).

Рис. 11.18. Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ записываСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² манифСст

НазначСниС строгого ΠΈΠΌΠ΅Π½ΠΈ Π² Visual Studio 2005

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ CarLibrary.dll Π² структуру GAC, Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Visual Studio 2005 позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ мСсто располоТСния Ρ„Π°ΠΉΠ»Π° *.snk Π½Π° страницС Properties (Бвойства) ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π² Visual Studio 2005 Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ оказываСтся Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈ использовании Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° [AssemblyKeyFile] гСнСрируСтся ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ компилятора). Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Signing (Подписи) ΠΈ, ΡƒΠΊΠ°Π·Π°Π² ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ *.snk, установитС Ρ„Π»Π°ΠΆΠΎΠΊ Sign the assembly (ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ), ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° рис. 11.19.

Рис. 11.19. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ„Π°ΠΉΠ»Π΅ *.snk Π½Π° страницС свойств ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Установка ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ общСдоступных ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ²

Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ шагом Π±ΡƒΠ΄Π΅Ρ‚ установка (Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΆΠ΅ строго ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΉ) Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ CarLibrary.dll Π² структуру GAC. ΠŸΡ€ΠΎΡ‰Π΅ всСго ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ общСдоступный ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π² структуру GAΠ‘, ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΠ² Ρ„Π°ΠΉΠ» ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ Π² ΠΏΠ°ΠΏΠΊΡƒ C:\Windows\assembly Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠŸΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ Windows (это ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈ тСстировании).

ΠšΡ€ΠΎΠΌΠ΅ этого, .NET Framework 2.0 SDK ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки gacutil.exe, которая позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ содСрТимоС GAC. Π’ Ρ‚Π°Π±Π». 11.1 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ gacutil.exe (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π»Π°Π³ /?, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС ΠΎΠΏΡ†ΠΈΠΈ),

Π’Π°Π±Π»ΠΈΡ†Π° 11.1. ΠžΠΏΡ†ΠΈΠΈ gacutil.exe

ΠžΠΏΡ†ΠΈΡ ОписаниС /i УстанавливаСт строго ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π² структуру GAC /u УдаляСт ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΈΠ· структуры GAC /l ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ (ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ) Π² структурС GAC

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ любой ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², установитС CarLibrary.dll Π² структуру GAC. ПослС этого Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ваша Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π² структурС присутствуСт ΠΈ учитываСтся (рис. 11.20).

Рис. 11.20. Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ имСнованная общСдоступная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° CarLibrary (вСрсия 1.0.0.0)

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ любого ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° открываСтся контСкстноС мСню, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ страницу свойств ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈΠ»ΠΈ Π΄Π΅ΠΈΠ½ΡΡ‚Π°Π»Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ (это эквивалСнтно использования Ρ„Π»Π°Π³Π° /u с ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ gacutil.exe).

ΠžΡ‚Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ подпись

ΠŸΡ€ΠΈ создании своих собствСнных ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² .NET Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ строгиС ΠΈΠΌΠ΅Π½Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свой ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» *.snk. Но ваша компания ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ Π² доступС ΠΊ Π³Π»Π°Π²Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ *. snk. Π’Π²ΠΈΠ΄Ρƒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ваТности Ρ„Π°ΠΉΠ»Π°, содСрТащСго ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΈ сСкрСтный ΠΊΠ»ΡŽΡ‡ΠΈ, этому ΡƒΠ΄ΠΈΠ²Π»ΡΡ‚ΡŒΡΡ Π½Π΅ слСдуСт, Π½ΠΎ это, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ вас (ΠΊΠ°ΠΊ Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°) Π±ΡƒΠ΄Π΅Ρ‚ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ установки ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² Π² структуру GAC с Ρ†Π΅Π»ΡŒΡŽ тСстирования. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ тСстированиС Π±Π΅Π· прСдоставлСния настоящСго Ρ„Π°ΠΉΠ»Π° *.snk, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ подписи. Π’ случаС с Ρ„Π°ΠΉΠ»ΠΎΠΌ CarLibrary.dll Π² использовании Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ нСобходимости, Π½ΠΎ ΠΌΡ‹ всС ΠΆΠ΅ прСдоставим ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.