Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В следующих рекомендациях описано, как создавать собственные сборки COM или Win32 параллельно. Возможно, вам не нужно создавать собственные параллельные сборки, если необходимые функциональные возможности предоставляются одной из поддерживаемых параллельных сборок Майкрософт. В этом случае используйте сборки, предоставляемые корпорацией Майкрософт, и следуйте инструкциям по использованию параллельных сборок в использовании изолированных приложений и параллельных сборок.
Во-первых, рассмотрите, является ли компонент подходящим кандидатом для параллельной сборки. Дополнительные сведения см. в разделе Следует ли предоставить общий компонент в виде параллельной сборки?
Чтобы создать параллельную сборку, следуйте приведенным ниже рекомендациям.
- Определите, какие ресурсы следует включить в сборку. Помните, что сборка состоит из одного или нескольких файлов, которые всегда предоставляются приложениям и клиентам вместе. Сборка служит основным блоком, используемым для именования, привязки, управления версиями, развертывания и конфигурации по умолчанию. Как правило, если есть сомнения по поводу того, принадлежат ли два ресурса к одной и той же сборке, рекомендуется оформлять их для размещения в разных сборках. Как правило, side-by-side сборка включает один DLL-файл.
- Создайте манифест для сборки для сборки. Манифест должен описать com-объект или библиотеки типов в сборке. Дополнительные сведения о том, что следует включить в манифест сборки, см. в манифестах сборки.
- Оцените использование объектов, если в системе выполняется несколько версий сборки. Определите, требуются ли для разных версий сборки отдельные структуры данных, такие как файлы, отображаемые в памяти, именованные каналы, зарегистрированные сообщения и классы Windows, разделяемая память, семафоры, мьютексы и аппаратные драйверы. Любые структуры данных, используемые в версиях сборок, должны быть обратно совместимыми. Определите, какие структуры данных можно использовать в разных версиях и какие структуры данных должны быть закрытыми для версии. Определите, требуются ли для общих структур данных отдельные объекты синхронизации, такие как семафоры и мьютексы.
- Создайте DLL, чтобы она хорошо функционировала как параллельная сборка, следуя рекомендациям, приведенным в Создание DLL для параллельной сборки.
- Создайте набор файлов заголовков и вспомогательных функций, чтобы легко получить доступ к разделам реестра версий, содержащим состояние сборки. Сборки обычно сохраняют параметры состояния в разделах реестра. Параметры реестра должны быть записаны на отдельной основе, чтобы изолировать несколько версий сборок, которые могут выполняться одновременно. Создайте параллельную сборку и библиотеку динамической компоновки (DLL) для корректного хранения и обработки состояния сборки во время сценариев параллельного использования. Следуйте инструкциям в хранилище состояний разработки для параллельных сборок.
- Разработчики приложений, использующих частные сборки, должны защитить каталог приложений. Если приложение установлено с помощью установщика Windows, каталог приложений можно защитить с помощью таблицы LockPermissions. Как правило, система получает доступ на чтение, запись и выполнение частных сборок; всем остальным процессам предоставляется доступ только на выполнение и чтение.
- Проверьте сборку с помощью сценариев совместного использования, чтобы убедиться, что она является допустимой параллельной сборкой. Успешная установка сборки недостаточна для того, чтобы гарантировать, что она будет работать должным образом.
- Применяйте метод нумерирования обновлений для сборки. Каждая сборка ассоциируется с четырехзначным номером версии. Слева направо, основные, незначительные, сборки и части редакции разделяются периодами. Измените основное или дополнительное число сборки для версии, несовместимой с более ранними версиями. Измените только номер сборки и номер ревизии для изменений, совместимых с обратной совместимостью. Например, разработчик может применить метод нумерирования, в котором все номера версий 1.0.0.* ссылаются на обновление версий до сборки версии 1.0.0.0.