92
Глава.2 .Компоновка,.упаковка,.развертывание.и.администрирование.приложений
алгоритм поиска файлов сборки
В поиске сборки среда CLR просматривает несколько подкаталогов. Порядок при
поиске сборки с нейтральными региональными стандартами таков (при условии,
что параметры
firstPrivatePath
и
secondPrivatePath
определены в атрибуте
privatePath
конфигурационного файла):
AppDir\AsmName.dll
AppDir\AsmName\AsmName.dll
AppDir\firstPrivatePath\AsmName.dll
AppDir\firstPrivatePath\AsmName\AsmName.dll
AppDir\secondPrivatePath\AsmName.dll
AppDir\secondPrivatePath\AsmName\AsmName.dll
...
В этом примере конфигурационный файл не понадобится, если файлы сборки
MultiFileLibrary
развернуты в подкаталоге
MultiFileLibrary
, так как CLR автома-
тически проверяет подкаталог, имя которого совпадает с именем искомой сборки.
Если ни в одном из упомянутых каталогов сборка не найдена, CLR начинает поиск
заново, но теперь ищет файл с расширением
EXE
вместо
DLL
. Если и на этот раз поиск
оканчивается неудачей, генерируется исключение
FileNotFoundException
.
В отношении сопутствующих сборок действуют те же правила поиска за одним
исключением: ожидается, что сборка находится в подкаталоге базового каталога
приложения, имя которого совпадает с названием регионального стандарта. На-
пример, если для файла
AsmName dll
назначен региональный стандарт «en-US»,
порядок просмотра каталогов таков:
C:\AppDir\en US\AsmName.dll
C:\AppDir\en US\AsmName\AsmName.dll
C:\AppDir\firstPrivatePath\en US\AsmName.dll
C:\AppDir\firstPrivatePath\en US\AsmName\AsmName.dll
C:\AppDir\secondPrivatePath\en US\AsmName.dll
C:\AppDir\secondPrivatePath\en US\AsmName\AsmName.dll
C:\AppDir\en US\AsmName.exe
C:\AppDir\en US\AsmName\AsmName.exe
C:\AppDir\firstPrivatePath\en US\AsmName.exe
C:\AppDir\firstPrivatePath\en US\AsmName\AsmName.exe
C:\AppDir\secondPrivatePath\en US\AsmName.exe
C:\AppDir\secondPrivatePath\en US\AsmName\AsmName.exe
C:\AppDir\en\AsmName.dll
C:\AppDir\en\AsmName\AsmName.dll
C:\AppDir\firstPrivatePath\en\AsmName.dll
C:\AppDir\firstPrivatePath\en\AsmName\AsmName.dll
C:\AppDir\secondPrivatePath\en\AsmName.dll
C:\AppDir\secondPrivatePath\en\AsmName\AsmName.dll
C:\AppDir\en\AsmName.exe
C:\AppDir\en\AsmName\AsmName.exe
93
Простое.средство.администрирования.(конфигурационный.файл)
C:\AppDir\firstPrivatePath\en\AsmName.exe
C:\AppDir\firstPrivatePath\en\AsmName\AsmName.exe
C:\AppDir\secondPrivatePath\en\AsmName.exe
C:\AppDir\secondPrivatePath\en\AsmName\AsmName.exe
Как видите, CLR ищет файлы с расширением
EXE
или
DLL
. Поскольку поиск
может занимать значительное время (особенно когда CLR пытается найти файлы
в сети), в конфигурационном XML-файле можно указать один или несколько эле-
ментов региональных стандартов
culture
, чтобы ограничить круг проверяемых
каталогов при поиске сопутствующих сборок. Microsoft предоставляет программу
FusLogVw exe
, при помощи которой можно увидеть, как CLR осуществляет привязку
сборок во время выполнения. Дополнительная информация доступна по адресу
http://msdn microsoft com/en-us/library/e74a18c4(v=vs 110) aspx
.
Имя и расположение конфигурационного XML-файла может различаться в за-
висимости от типа приложения.
Для исполняемых приложений (EXE) конфигурационный файл должен рас-
полагаться в базовом каталоге приложения. У него должно быть то же имя, что
и у EXE-файла, но с расширением
config
.
Для приложений Microsoft ASP.NET Web Form конфигурационный файл всегда
должен находиться в виртуальном корневом каталоге веб-приложения и на-
зываться
Web config
. Кроме того, в каждом вложенном каталоге может быть
собственный файл
Web config
с унаследованными параметрами конфигурации.
Например, веб-приложение, расположенное по адресу
http://www Wintellect com/
Training
, будет использовать параметры из файлов
Web config
, расположенных
в виртуальном корневом каталоге и в подкаталоге
Training
.
Как уже было сказано, параметры конфигурации применяются к конкретному
приложению и конкретному компьютеру. При установке платформа .NET Framework
создает файл
Machine config
. Существует по одному файлу
Machine config
на каж-
дую версию среды CLR, установленную на данной машине. Файл
Machine config
расположен в следующем каталоге:
%SystemRoot%\Microsoft.NET\Framework\
версия
\CONFIG
Естественно,
%SystemRoot%
— это каталог, в котором установлена система
Windows (обычно
C:\Windows
), а
версия
— номер версии, идентифицирующий
определенную версию платформы .NET Framework (например, v4.0.#####).
Параметры файла
Machine config
заменяют параметры конфигурационного
файла конкретного приложения. Администраторам и пользователям следует
избегать модификации файла
Machine config
, поскольку в нем хранятся многие
параметры, связанные с самыми разными аспектами работы системы, что серьезно
затрудняет ориентацию в его содержимом. Кроме того, конфигурационные файлы,
специфичные для приложения, упрощают организацию резервного копирования
и восстановления конфигурации приложения.
Do'stlaringiz bilan baham: |