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

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

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

csc @TestApp.rsp /out:MyCoolApp.exe

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π€Π»Π°Π³ /reference являСтся кумулятивным. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ (Π΄ΠΎ, послС ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°), Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ объСдинСниС всСх ссылок.

ΠžΡ‚Π²Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (csc.rsp)

Π’ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² слСдуСт Π·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ компилятор C# ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π­Ρ‚ΠΎ Ρ„Π°ΠΉΠ» csc.rsp, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Ρ‡Ρ‚ΠΎ ΠΈ csc.exe (ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, C:\Windows\Microsoft.NET\Framework\v2.0.50215). Если ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» csc.rsp с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ c ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π»Π°Π³Π° /r: ΡƒΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Π½ Ρ†Π΅Π»Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² .NET.

ΠŸΡ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ΅ C#-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ csc.Π΅Ρ…e ссылка Π½Π° этот Ρ„aΠΉΠ» выполняСтся автоматичСски, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ свой Ρ„Π°ΠΉΠ» *.rsp. Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ TestApp.exe Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ скомпилировано ΠΈ ΠΏΡ€ΠΈ использовании ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² csc.rsp Π΅ΡΡ‚ΡŒ сcΡ‹Π»ΠΊΠ° Π½Π° System.Windows.Forms.dll).

csc /out:TestApp.exe *.cs

Если Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ автоматичСскоС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° csc.rsp, слСдуСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ /noconfig.

csc @TestApp.rsΡ€ /noconfig

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки C# ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для управлСния процСссом гСнСрирования ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² .NET. Если Π²Π°ΠΌ трСбуСтся Π±ΠΎΠ»Π΅Π΅ подробная информация ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностях csc.exe, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ мою ΡΡ‚Π°Ρ‚ΡŒΡŽ "Working with the C# 2.0 Command line Compiler" (Π Π°Π±ΠΎΡ‚Π° с компилятором ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки C# 2.0), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° страницах http://msdn.microsoft.com.

ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (cordbg.exe)

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ возмоТностСй ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ C#-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅-Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ TextPad, слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ .NET Framework 2.0 SDK ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки cordbg.Π΅Ρ…e. Π­Ρ‚ΠΎΡ‚ инструмСнт ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ список этих ΠΎΠΏΡ†ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π»Π°Π³ /?.

cordbg /?

Π’ Ρ‚Π°Π±Π». 2.3 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ (Π½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Π½Π΅ всС) Ρ„Π»Π°Π³ΠΈ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΡ… сокращСнных Ρ„ΠΎΡ€ΠΌ, распознаваСмыС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ cordbg.exe Π² сСансС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Π’Π°Π±Π»ΠΈΡ†Π° 2.3. НСкоторыС Ρ„Π»Π°Π³ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° cordbg.exe

Π€Π»Π°Π³ ОписаниС b[reak] Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова del[ete] Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ останова ex[it] Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° g[o] ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ процСсса Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова o[ut] Π’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ p[rint] ΠΠ°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ всС Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ (Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Ρ‚.Π΄.) si Π’ΠΎΠΉΡ‚ΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку so ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· вас ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Visual Studio 2005, поэтому я Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ„Π»Π°Π³ΠΈ cordbg.exe. Но для Ρ‚Π΅Ρ…, ΠΊΠΎΠΌΡƒ это интСрСсно, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ прСдлагаСтся ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ пошаговоС описаниС основных этапов процСсса ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ с использованиСм ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cordbg.exe слСдуСт ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ символы для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ прилоТСния, ΡƒΠΊΠ°Π·Π°Π² для csc.exe Ρ„Π»Π°Π³ /debug. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ для прилоТСния TestApp.exe, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

csc @testapp.rsp /debug

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ гСнСрируСтся Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π² Π΄Π°Π½Π½ΠΎΠΌ случаС с ΠΈΠΌΠ΅Π½Π΅ΠΌ testapp.pdb. Π‘Π΅Π· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° *.pdb ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ cordbg.exe Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΏΡ€ΠΈ этом Π² процСссС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π²Ρ‹ Π½Π΅ смоТСтС Π²ΠΈΠ΄Π΅Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ C# (Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Π°ΠΆΠ½ΠΎ, Ссли Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ сСбС Тизнь Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° CIL).

Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π² Ρ„Π°ΠΉΠ» *.pdb, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΡƒΠΊΠ°Π·Π°Π² для cordbg.exe свой ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ .NET Π² Π²ΠΈΠ΄Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (ΠΏΡ€ΠΈ этом Ρ„Π°ΠΉΠ» *.pdb Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ автоматичСски).

cordbg.exe testapp.exe

НачнСтся Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ допустимыС Ρ„Π»Π°Π³ΠΈ cordbg.exe Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС (cordbg) (рис. 2.3).

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ cordbg.exe, слСдуСт просто ввСсти exit (ΠΈΠ»ΠΈ, сокращСнно, Π΅Ρ…). Если Π²Ρ‹ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ стойким ΠΏΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Ρ†Π΅ΠΌ использования ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ возмоТности графичСского ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’ любом случаС для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ .NET Framework 2.0 SDK, посвящСнному cordbg.exe.

Рис. 2.3. ΠžΡ‚Π»Π°Π΄ΠΊΠ° прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cordbg.exe

Компоновка .NET-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ TextPad

БСсплатный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚, нСсомнСнно, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания простых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ .NET, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Ρ€ΡƒΠ΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π₯ΠΎΡ€ΠΎΡˆΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹ *.cs, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ (ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ) Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов ΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с компилятором C#. Как ΠΈ слСдуСт ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊΠΎΠΉ инструмСнт сущСствуСт – это TextPad.

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ TextPad ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΈ компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° языкС C#, Π½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования. Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство этого ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΠΎΠ½, с ΠΎΠ΄Π½ΠΎΠΉ стороны, ΠΎΡ‡Π΅Π½ΡŒ прост Π² использовании, Π° с Π΄Ρ€ΡƒΠ³ΠΎΠΉ – обСспСчиваСт достаточно ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности для упрощСния процСсса создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ TextPad, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° страницу http://www.textpad.com ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ этого Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° (Π²ΠΎ врСмя создания нашСй ΠΊΠ½ΠΈΠ³ΠΈ это Π±Ρ‹Π»Π° вСрсия 4.7.3). Установив этот Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π²Ρ‹ сразу ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ TextPad с ΠΏΠΎΠ»Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΅Π³ΠΎ возмоТностСй, Π½ΠΎ Π·Π½Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ этот ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π½Π΅ бСсплатСн. Пока Π²Ρ‹ Π½Π΅ ΠΊΡƒΠΏΠΈΡ‚Π΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ (Π΅Π΅ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠΊΠΎΠ»ΠΎ $30 для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ), Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ "друТСскиС напоминания" ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС этого прилоТСния.

Активизация Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ схСмы C#

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ TextPad Π½Π΅ настроСн Π½Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов C# ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с сsc.exe. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ подходящСС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ страницу http://www.textpad.com/add-ons/syna2g.html ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» csharp8.zip ΠΏΠΎ ссылкС C# 2005. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² C# 2005 (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„Π°ΠΉΠ»Π°, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎ ссылкС C#, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ возмоТности C# 1.1).

Π Π°Π·Π²Π΅Ρ€Π½ΡƒΠ² Π°Ρ€Ρ…ΠΈΠ² csharp8.zip, помСститС копию ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° csharp8.syn Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Samples ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° инсталляции TextPad (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² C:\Program Files\TextPad 4\Samples). Π—Π°Ρ‚Π΅ΠΌ запуститС TextPad ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ New Document Wizard (ΠœΠ°ΡΡ‚Π΅Ρ€ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°) Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия.

1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Configured New Document Class ΠΈΠ· мСню.

2. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя C# 2.0 Π² ΠΏΠΎΠ»Π΅ рСдактирования Document class name (Имя Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° класса).

3. Π—Π°Ρ‚Π΅ΠΌ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ *.cs Π² ΠΏΠΎΠ»Π΅ рСдактирования Class members (Π§Π»Π΅Π½Ρ‹ класса).

4. АктивизируйтС подсвСтку синтаксиса, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ csharp8.syn ΠΈΠ· Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ мастСра.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ C# Π² TextPad, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΠ·Π΅Π» Document Classes (ΠšΠ»Π°ΡΡΡ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°), доступный ΠΈΠ· мСню Configureβ†’Preferences (рис. 2.4).

Рис. 2.4. Установка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° TextPad

Настройка Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² *.cs

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ являСтся созданиС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° для Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π° C#, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠ½Π°Ρ… Open (ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°) ΠΈ Save (Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°).

1. Π‘Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Configureβ†’Preferences ΠΈΠ· мСню, Π° Π·Π°Ρ‚Π΅ΠΌ – элСмСнт File Name Filters (Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ²) Π΄Π΅Ρ€Π΅Π²Π° просмотра.

2. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ New (Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ), Π° Π·Π°Ρ‚Π΅ΠΌ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ C# Π² ΠΏΠΎΠ»Π΅ Description (ОписаниС) ΠΈ *.cs Π² тСкстовый Π±Π»ΠΎΠΊ Wild cards (Π“Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹Π΅ символы).

3. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ свой Π½ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π² Π½Π°Ρ‡Π°Π»ΠΎ списка, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ для этого ΠΊΠ½ΠΎΠΏΠΊΡƒ Move Up (Π’Π²Π΅Ρ€Ρ…), Π° Π·Π°Ρ‚Π΅ΠΌ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ ОК.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Fileβ†’New) ΠΈ сохранитС Π΅Π³ΠΎ Π² подходящСм мСстС Π½Π° дискС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΏΠ°ΠΏΠΊΠ΅ C:\TextPadTestApp) ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ TextPadTest.cs. Π—Π°Ρ‚Π΅ΠΌ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ класса (рис. 2.5).

Рис. 2.5. Ѐайл TextPadTest.cs

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ csc.exe

ПослСдним ΠΈΠ· ΠΎcΠ½ΠΎΠ²Π½Ρ‹Ρ… шагов ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° TextPad Π±ΡƒΠ΄Π΅Ρ‚ связь с сsc.exe которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ C#-Ρ„Π°ΠΉΠ»Ρ‹. Π‘ этой Ρ†Π΅Π»ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Toolsβ†’Run ΠΈΠ· мСню. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„Π»Π°Π³ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π’Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ TextPadTest.cs Π² выполняСмый ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» .NET, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги.