Файлы конфигурации политики управления версиями
Заданная по умолчанию политика управления версиями часто оказывает желательное действие, причем она действует автоматически, если не существует никакого файла конфигурации. Однако иногда требуется более тонкое управление процессом связывания с общедоступной сборкой. Как упоминалось ранее, чтобы сделать это для выполняемых клиентских программ, нужно создать файл конфигурации, содержащий XML-документ с тем же самым именем, что и у клиента, но с расширением .config, и поместить его в тот же самый каталог, где находится клиентская выполняемая программа.
Это может быть полезно в тех случаях, когда вы хотите отключить заданную по умолчанию автоматическую политику QFE, или если вы хотите использовать версию компонента-сборки, отличную от той, которая была указана при компиляции клиентской программы. Важно обратить внимание, что файл конфигурации приложения может затронуть поведение связывания только единственного приложения-клиента. Он не может быть применен ко всем клиентским программам, использующим данную сборку.
Для .NET файлов конфигурации тэгом верхнего уровня является <configuration> (<конфигурация>). Информация о связывании сборки находится в разделе <runtime> (<во время выполнения>). Пример файла конфигурации может выглядеть следующим образом:
<?xml version="l.0"?> <! – версия – > <configuration> <! – конфигурация – > <runtime> <!– во время выполнения – > <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.vl"> <dependentAssembly> <assemblyldentity name="Customer" <! – Клиент – > publicKeyToken="8bOe612d60bdeOca" /> <bindingRedirect oldVersion="l.0.0.0-1.1.0.0" newVersion="l.1.0.0" /> </dependentAssemblу> </assemblyBinding> </runtime> <!--во время выполнения – > </configuration> <! – конфигурация – >
Правила, определяющие политику управления версиями, находятся в разделе <assemblyBinding>.XML-спецификация пространства имен необходима. Каждая сборка, политику управления версиями которой мы хотим установить, помещается в ее собственный раздел <dependentAssembly>. Элемент assemblyldentity имеет атрибуты, определяющие сборку, к которой этот раздел относится. Атрибут name (имя) обязателен; атрибуты culture (культура) и publicKeyToken являются необязательными. Атрибуты элемента bindingRedirect определяют то, что версии могут отобразить на другую версию. Атрибутом oldVersion может быть диапазон; атрибут newVersion может быть установлен только на одну версию. В вышеупомянутом примере любые ссылки на версии от 1.0.0.0 до 1.1.0.0 могут быть разрешены с помощью версии 1.1.0.0. Другими словами, версия 1.1.0.0 обратно совместима со всеми указанными версиями. Можно определить несколько элементов bindingRedirect.
Для установки файла конфигурации можно использовать Инструмент администрирования .NET (.NET Admin Tool). Чтобы запустить этот инструмент, дважды щелкните на \WINNT\Microsoft .NET\Framework\vl.0.2914\mscorcfg.msc в Проводнике Windows (Windows Explorer). Затем добавьте приложение к инструменту, щелкнув правой кнопкой мыши на Applications (Приложения) в левой области окна, и выберите Add (Добавить) из контекстного меню. Переместитесь к приложению, которое вы хотите конфигурировать.
Выберите его и щелкните на кнопке Open (Открыть). На рис. 7.7 показан Инструмент администрирования (Admin Tool) после того, как выполнены все указания.
Рис. 7.7. Обычно для конфигурирования политики управления версиями используется Инструмент администрирования .NET (.NET Admin Tool)