Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 119

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 113 114 115 116 117 118 < 119 > 120 121 122 123 124 125 .. 320 >> Следующая

Desktop JJ312E1
] Eile Edt View Fayorfces Toofs цФ
J «J= Beck » ^ - |Ц j ^Search 0^i Folders trt 1ЕЮ'
j Address C^'-^.?/
-1 «»J —і 'л 0 ft 0 ¦
^ - ¦ л Internet Microsoft Microsoft I
Desktop Explorer Outlook ActiveSync
2 items selected, Ш I I J
Total File Size- 10.5KB Component I CSriarpC, ,і. I Enterprise Microsoft
_ Services Manager Visual Ba,,,
CarLibrary,dll em
2 object(j) selected
Рис. 6.18. Для установки приложения достаточно просто скопировать файл и необходимые частные сборки на компьютер
Как, наверное, вы уже догадываетесь, простота установки означает и простоту удаления программы. Для этого достаточно просто удалить файлы этого приложения. Как тут не вспомнить классический СОМ, в котором при деинсталляции про-мы постоянно рискуем либо оставить в реестре записи, за-
мусорив ein, либо нарушить работоспособность какого-либо другого приложения.
Технология «зондирования»
Ниже мы довольно подробно опишем то, как среда выполнения .NET производит поиск сборокразных типов, Этот поиск в .ЫЕТобозначается специальным термином -зондирование» (probing). Этот механизм и используемые для управления им средства могут быть весьма изощренными, однако для частных сборок е.ервля часть всегда будет одной и той же. Предположим, в нашем приложении есть следующий код:
.assembly extern {
І"
Алгоритм поиска будет таким.
1. Среда выполнения .NET попытается обнаружить файл CarL.ibiary.dli в том же каталоге, в котором расположен исполняемый файл (в каталоге приложения).
2. Если CarLibrary.dU не обнаружен, го дальше среда выполнения попытается найти в том же каталоге файл CarLibrary.exe.
284 Глава 6 • Сборки, потоки и домены приложений
3. Если не найден и файл Cailibrary.exe, то среда выполнения будет ис-
пользовать для поиска другие способы, о которых речь пойдет ниже.
Идентификация частной сборки
Частная сборка идентифицируется по дружественному имени и числовой версии. И дружественное имя, и числовая версия записаны в манифесте сборки. Дружественное имя сборки — это имя двоичного модуля, который содержит манифест
,сборки. Например, в манифесте CarLibrary.dll можно найти следующие строки (номер версии не имеет значения):
,assembly CarLibrary as "CarLibrary
(
.ver 1:0:454:30104
}
я частной сборки среда выполнения вообще не использует никакой в отношении версий. В этом просто нет необходимости: частная сборка находиться на своем месте в единственном экземпляре. Если несколько или одинаковых версий одной и той же частной сборки будут находиться в местах файловой системы компьютера (что вполне вероятно), то друг дру-. они мешать не будут.
Частные сборки и файлы конфигурации приложений
Если нам необходимо явным образом указать среде выполнения где разыс-
кивать ту или иную сборку, в нашем распоряжении файлы конфигурации приложений. Это - обычные текстовые файлы в формате XML. Вся необходимая информация записывается в них в специальные теги XML. Файлы конфигурации должны иметь то же самое имя, что и приложение, к которому они относятся, и расширение
В файлах конфигурации можно указать подкаталоги, в которых среда
выполнения будет искать сборку. Конечно же. обычно такое решение используется для больших приложений, в которых сборок много и есть смысл упорядочить их по разным подкаталогам. Например, предположим, что мы разработали коммерческое приложение с именем MyRadApplication, в каталоге которого находятся подкаталоги \ Images, \В1п, \Sav'edGames и \OtherCoolStuff. При помощи файлов конфигурации мы можем указать те каталоги, в которых среда выполнения будет производить поиск частных сборок при запуске приложения.
В качестве примера создадим файл конфигурации для одного из наших приложений - CSharpCarClient. Для такого эксперимента необходимо перенести файл частной сборки CarLibrary.dll из каталога \Debug в какой-нибудь подкаталог внутри этого каталога. Поместим его в подкаталог \Foo\Bar так, как это показано на рис. 6.19,
Далее нужно создать новый файл конфигурации с именем CSharpCarClient.exe.config (для этого вполне подойдет самый обычный блокнот - notepad.exe) и сохранить
том самом каталоге, в котором находится исполняемый файл Файл конфигурации должен начинаться с тега <Canfigurati оп>. Между этим тегом и соответствующим ему закрывающим тегом </Configurati оп> необходимо размес-
Технология «зондирования» 285
тить тег <assemb]yB"iri'Jing>, внутри которого в атрибуте pnvatePath и указывается нужный подкаталог с частной сборкой (если вам необходимо указать несколько подкаталогов, то они перечисляются через точку с запятой). Весь файл конфигурации в нашем случае может выглядеть так:
^configuration <runtime>
<asseiriblyBinding xmlns="urn:Schemas-microsoft-com:asm,vl">
<probing privatePath="foo\ba r"I> </assembiyBinding> </runtime=-</configuration?
\&Vr; !•',(.лгцШк.кМоЬ*-,C!.«ріст 6'.(.Slurp*. лІЖій.'-
! Fife E_«cJii: View Favorites Tools i\y-v
' ^Be:;k - *t - j ^Sedfrh . folders History -.-^j '--^j X Mi
Предыдущая << 1 .. 113 114 115 116 117 118 < 119 > 120 121 122 123 124 125 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100