Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Троелсен Э. Язык программирования С# 2010 и п...docx
Скачиваний:
113
Добавлен:
21.09.2019
Размер:
6.92 Mб
Скачать

Компиляция cil-кода с помощью ilasm.Exe

Сохранив измененный файл *.il, вы можете скомпилировать новый компоновочный блок .NET, используя для этого утилиту ilasm.exe (компилятор CIL). Возможно, вы удивитесь тому, что компилятор CIL имеет гораздо меньше опций командной строки, чем компилятор C#. В табл. 15.1 приводятся их описания.

Таблица 15.1. Опции командной строки ilasm.exe 

Опция

Описание

/debug

Включает информацию отладки (такую как имена локальных переменных и аргументов, а также номера строк)

/dll

Создает выходной файл" *.dll

/exe

Создает выходной файл *.exe. Это значение устанавливается по умолчанию, поэтому его можно опустить

/key

Компилирует компоновочный блок со строгим именем, используя заданный файл *.snk

/noautoinherit

Запрещает автоматическое наследование типов класса из System. Object, когда конкретный базовый класс не определен

/output

Указывает имя и расширение выходного файла. Если флаг /output не используется, имя выходного файла будет соответствовать имени первого исходного файла

Чтобы откомпилировать обновленный файл simplehelloclass.il в .NET-файл *.exe, в командном окне Visual Studio 2005 выполните следующую команду.

ilasm.exe HelloProgram.il

Если все пройдет без сбоев, вы должны получить вывод, подобный показанному на рис. 15.1.

Рис. 15.1. Компиляция файлов *.il с помощью ilasm.exe

После этого вы сможете выполнить свое новое приложение. Достаточно очевидно, что теперь вместо сообщения в окне консоли вы должны увидеть окно Windows с вашим сообщением (рис. 15.2).

Рис. 15.2. Результат челночной технологии

Компиляция cil-кода с помощью SharpDevelop

Для работы с файлами *.il вы можете использовать бесплатную среду разработки SharpDevelop (см. главу 2). При создании нового "комбината" (для этого выберите File→New Combine из меню), одним из вариантов выбора является создание рабочего пространства CIL-проекта. Хотя SharpDevelop пока что не предлагает поддержку IntelliSense для CIL-проектов, лексемы CIL выделяются цветом, и вы получаете возможность компилировать и выполнять свои приложения непосредственно в окне IDE (а не в командной строке, как в случае ilasm.exe).

Компиляция cil-кода с помощью ilide#

Если вам интересно поэкспериментировать с языком программирования CIL, рекомендую загрузить самую последнюю версию бесплатного редактора исходных текстов CIL, имеющего открытый код и название ILIDE#. Этот инструмент, подобно SharpDevelop, обеспечивает выделение цветом ключевых слов и программных структур, интеграцию с ilasm.exe и набор соответствующих инструментов. В отличие от SharpDevelop, последняя версия ILIDE# поддерживает IntelliSense для CIL. Установщик ILIDE# можно загрузить со страницы http://ilide.aspfreeserver.com/default-en.aspx (этот адрес URL может измениться). На рис. 15.3 показано окно ILIDE# в действии.

Рис. 15.3. Редактор ILIDE# – бесплатная среда разработки для CIL