β’ ΠΠΎΠ½ΡΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (ΠΊΠΎΡΠΎΡΠΎΠ΅, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π±Π΅Π· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°)
β’ ΠΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (Π½Π°Π·Π½Π°ΡΠ°Π΅ΠΌΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠ° [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 Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π½ΠΎ ΠΌΡ Π²ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ.