Создание сборок в C#

До сих пор мы выполняли наши программы, запуская их через выполнение команды меню Debug | Start. Программа выполнялась непосредственно в среде C#. Но может возникнуть необходимость создать самостоятельное приложение, выполнение которого никак не должно привязываться к среде программирования C#. Такие самостоятельные приложения называются сборками. Слово "сборка" означает, что приложение собрано из отдельных составляющих частей. Именно в сборку могут входить откомпилированные классы (кажцый в своем файле), из которых один класс обязательно должен содержать метод Main(), dll-функции, ресурсы (прежде всего, иконки и битмапобразы), а также манифест сборки. Мы не буцем использовать манифесты. Отметим, что однофайловую сборку можно создать, используя команду Build основного меню среды разработки, выбрав Build имя_приложения. Будет создан ехе-файл. Наша цель — показать, как создать многофайловую сборку. Пусть текст первого файла будет следующим (листинг 3.18).

i Листинг 3.18. Первый файл сборки

using System;

namespace StringConversion

class Му

string privatestring; public string instring;

get

{

}

set

{

privatestring=value;

}

}

public void upper(out string upperstr)

{

upperstr=privatestring.ToUpper();

}

}

}

Этот файл следует создать не как проект, а как обычный текстовый файл. Обратим внимание на конструкцию get-set. Она применяется для объявления публикуемых свойств класса. Это перенято из Visual Basic. Публикуемое свойство получает значение методом set, а прочитать значение этого свойства можно методом get. Фрагмент объявления публикуемого свойства таков:

public string instring {

get

{

return privatestring;

}

set

privatestring=value;

Чтобы этот файл с именем, скажем, exl.cs использовать в качестве файла сборки, нужно запустить из командной строки MS- DOS компилятор C#:

csc /t: module exl.cs

Для этого выберите Пуск | Программы | Visual Studio .NET 2003 | Tools | Command Prompt. Если в программе ошибок нет, то будет создан файл с именем exl.netmodule.

Теперь наберите текст второго главного файла сборки с именем ex2.es (листинг 3.19).

i Листинг 3.19. Второй файл сборки

using System;

using StringConversion;

class MyMain

public static void Main()

string localstring;

My ms = new My(); ms.instring ="hello from …"; ms.upper(out localstring);

Console.WriteLine(localstring);

Видим, что этот класс использует класс му, определенный в первом файле (листинг 3.18). Для того чтобы это стало технически возможным, подключаем пространство имен первого файла посредством using StringConversion.

Теперь нужно скомпилировать и этот файл, но он — главный, поэтому строка компиляции изменится так:

csc /addmodule : exl.netmodule /t: module ex2.es Теперь нужно собрать все в одно приложение:

al exl.netmodule

ex2.netmodule /main: ex2 ex2.Main

/out: exO.exe /t:exe

Часть

al exl.netmodule

ex2.netmodule

в общем-то понятна; ai — это сокращение от assemble (от англ. — "собирать"). В этой части указываются имена объединяемых модулей.

Опция /main: ex2 ex2.Main указывает, что имя главного файла ex2, а ИМЯ главной функции — Main.

Опция /out: exO. exe указывает, что имя создаваемого файла exO.exe. Опция /t:exe определяет исполняемый тип файла.

Итак, мы "оторвали" приложение от среды C#. Кроме того, сборки позволяют писать программу отдельными модулями, т. e. разбить ее на функционально законченные части и отдать разным людям на исполнение.

Источник: Герман О. B., Герман Ю. О., Программирование на Java и C# для студента. — СПб.: БХВ-Петербург, 2005. — 512 c.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100