Развертывание нескольких версий приложения или компонента
Развертывать предназначенные для параллельного выполнения сборки можно следующими способами:
Закрытое развертывание.
Сборку можно развернуть в каталог приложения или его подкаталог. Среда CLR находит сборку, используя разрешение привязки по умолчанию. Дополнительные сведения о разрешении привязки сборок см. в разделе Обнаружение сборок средой выполнения.
Закрытое развертывание сборок — удобный способ развернуть приложение для параллельного выполнения, поскольку такие сборки не могут повлиять на другие сборки компьютера. Кроме того, закрытым способом можно развертывать сборки как со строгими именами, так и без строгих имен. Сборки со строгими именами необязательно развертывать в глобальном кэше сборок; их можно развернуть в папке приложения. Если использовать сборку в нескольких приложениях не планируется, ее можно развернуть закрытым способом в каталоге приложения.
Еще одно преимущество закрытого развертывания — это возможность применить для развертывания приложения команду XCOPY.
Развертывание в глобальный кэш сборок.
Установка сборки в глобальный кэш сборок делает ее видимой для всех приложений компьютера. Такой тип развертывания подходит, когда сборка используется несколькими приложениями. Обратите внимание, что в глобальный кэш сборок могут развертываться только сборки со строгими именами.
Как установщик Windows, так и средство глобального кэша сборок (Gacutil.exe) могут устанавливать сборки в глобальный кэш сборок. Средство глобального кэша сборок следует использовать во время разработки и тестирования, установщик же Windows рекомендуется использовать непосредственно для развертывания приложения. Установщик Windows следит за ссылками на сборки, установленные в глобальный кэш сборок, поэтому совместно используемая сборка не удаляется, пока она нужна хотя бы одному приложению компьютера. Дополнительные сведения об установке приложений для параллельного выполнения см. в разделе Использование установщика Windows для установки приложений и компонентов для параллельного выполнения.
Развертывание с использованием элемента <codeBase>.
Элемент <codeBase> можно включить в файл конфигурации приложения, чтобы помочь среде выполнения обнаруживать сборки. Среда выполнения использует сведения о расположении, которые содержатся в элементе <codeBase>, а не ищет сборку с помощью стандартных правил. Элемент <codeBase> может применяться для сборок как со строгим именем, так и для сборок без него.
Для сборок без строгого имени элементы <codeBase> должны ссылаться на папку приложения. Это гарантирует отсутствие коллизий имен при параллельном выполнении, то есть в ситуации, когда среда выполнения находит две сборки с одинаковыми именами.
Для сборок со строгим именем элементы <codeBase> могут направлять среду выполнения в любое расположение. Элементы <codeBase> предоставляют механизм совместного использования несколькими приложениями сборок со строгими именами без обращения к глобальному кэшу сборок. Однако этот способ следует применять с осторожностью, поскольку можно нарушить работу приложения, если при смене версий задать неверный элемент <codeBase>.
Подробное рассмотрение вариантов развертывания см. в разделе Развертывание приложений.
См. также
Основные понятия
Развертывание .NET Framework и приложений
Рекомендации по созданию приложений и компонентов для параллельного выполнения