Поделиться через


Сравнение отдельного развертывания с центральным развертыванием (SQL Server Compact)

Развертывание управляемых приложений, построенных на основе SQL Server Compact 4.0, производится с использованием либо центрального, либо отдельного развертывания для SQL Server Compact. При центральном развертывании SQL Server Compact устанавливается на компьютер из установочного исполняемого файла. При отдельном развертывании двоичные файлы SQL Server Compact помещаются непосредственно в каталог приложения. Поэтому отдельное развертывание SQL Server Compact также называется развертыванием SQL Server Compact с помощью XCOPY.

При центральном развертывании приложение использует управляемые сборки SQL Server Compact (System.Data.SqlServerCe.dll и System.Data.SqlserverCe.Entity.dll), установленные в глобальном кэше сборок, а также собственные компоненты SQL Server Compact из центрального расположения, то есть %Program Files%\Microsoft SQL Server Compact Edition\v4.0. Если установлена более новая версия или обновление SQL Server Compact 4.0, то приложения, использующие центральное развертывание SQL Server Compact, будут использовать обновленную версию SQL Server Compact 4.0 при следующем запуске. К недостаткам центрального развертывания можно отнести то, что установка SQL Server Compact 4.0 может быть выполнена только пользователем с правами доступа администратора на этом компьютере (поскольку такие права доступа необходимы для установки сборок в глобальном кэше сборок и регистрации собственных компонентов). Если приложение развертывается с помощью технологии ClickOnce и используется центральное развертывание SQL Server Compact 4.0 в процессе установки необходимого программного обеспечения, то установка может завершиться ошибкой, поскольку пользователю будет недостаточно прав доступа для установки SQL Server Compact 4.0.

При закрытом развертывании приложение использует только собственную локальную копию управляемых сборок SQL Server Compact и необходимые собственные библиотеки SQL Server Compact. Эти сборки и собственные библиотеки включены в состав приложения и при развертывании устанавливаются в папку приложения на целевой системе. У сборок SQL Server Compact после закрытого развертывания должна быть более поздняя версия, чем у сборок из глобального кэша сборок при центральном развертывании, если нужно, чтобы приложение использовало сборки, развертываемые закрытым способом, а не центральным. Если сборки SQL Server Compact отсутствуют в глобальном кэше сборок (центральное развертывание SQL Server Compact на целевом компьютере не выполнялось), то приложение пользуется сборками из отдельного развертывания. Одно из преимуществ использования закрытого развертывания заключается в следующем: поскольку сборки SQL Server Compact не устанавливаются в глобальном кэше сборок и собственные компоненты не регистрируются в COM, пользователю не нужны права администратора на компьютере, что позволяет избежать потенциальных проблем, возникающих с центральным развертыванием на заблокированных компьютерах. При этом закрытое развертывание возлагает на разработчика большую ответственность, поскольку обновления для сборок SQL Server Compact после закрытого развертывания не поддерживают централизованное обслуживание. Если требуется обновить сборки SQL Server Compact, развернутые вместе с приложением, разработчику придется перестроить приложение с версией SQL Server Compact 4.0, где есть нужные обновления, и повторно опубликовать приложение.

Установка

Поведение SQL Server Compact 4.0 при установке в 32- и 64-разрядных операционных системах:

SQL Server Compact 4.0

Операционная система

32-разрядная версия

32-разрядная версия

Успешно

64-разрядная версия

Ошибка

Ниже приведены устанавливаемые управляемые и собственные сборки.

Управляемые сборки: устанавливаются в каталог %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private:

  • System.Data.SqlServerCe.dll

  • System.Data.SqlServerCe.Entity.dll

Собственные сборки: устанавливаются в %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private\x86 и %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private\amd64,except sqlceoledb40.dll, чьим каталогом является %Program Files&\Microsoft SQL Server Compact Edition\v4.0.

  • sqlceca40.dll

  • sqlcecompact40.dll

  • sqlceer40EN.dll

  • sqlceme40.dll

  • sqlceoledb40.dll

  • sqlceqp40.dll

  • sqlcese40.dll

Также существует одна сборка и один манифест для библиотек времени выполнения для Microsoft Visual C++ 2008 (CRT).

  • msvcr90.dll

  • Манифест Microsoft.VC90.CRT.

Обновления при отдельном развертывании

Одна из проблем при отдельном развертывании заключается в том, что среда CLR по умолчанию загружает сборки из глобального кэша сборок. В этом смысле достаточно трудно обновлять отдельно развернутые сборки SQL Server Compact, если в глобальном кэше сборок имеется старая версия SQL Server Compact, поскольку CLR будет по-прежнему загружать сборки SQL Server Compact из глобального кэша сборок. Единственный случай, когда при отдельном развертывании сборка будет загружена в CLR, — это случай, когда версия сборки отличается от находящейся в глобальном кэше сборок, а приложение скомпилировано со сборкой, развернутой в глобальном кэше сборок.

В SQL Server Compact 4.0 эта проблема решается следующими средствами:

  • Увеличение номера версии сборки для всех обновлений программного обеспечения, включая исправления, пакеты обновлений, важные исправления и обновления безопасности. Номер версии сборки увеличивается в следующем порядке: 4.0.0.1, 4.0.0.2, 4.0.0.3 и т. д.

  • Установка дополнительных копий управляемых сборок (System.Data.SqlServerCe.dll и System.Data.SqlServerCe.Entity.dll) в следующую папку: %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private.

Обновления применяются следующим образом.

  • Для регулярных исправлений обновление применяется ко всем копиям одной из управляемых сборок (или к обеим), однако обновляется версия только тех копий сборок, что находятся в папке Private. Это гарантирует, что для некритических обновлений сборки в папке Private на компьютере разработчика будут иметь более высокий номер версии, чем установленные в глобальном кэше сборок. Это также позволяет гарантировать, что для приложений, в которых используется отдельное развертывание на компьютерах, где применяется обновление, CLR будет по-прежнему загружать сборки SQL Server Compact 4.0 из пути приложения (поскольку номер версии сборки в глобальном кэше сборок останется неизменным).

  • Что касается обновления безопасности, пакетов обновления и критических обновлений, то они применяются ко всем копиям двух управляемых сборок и версия сборки также обновляется у всех. Помимо этого, обновляется политика издателя, обеспечивая автоматическое перенаправление всех более ранних версий сборок на новые версии. Это гарантирует, что на тех компьютерах, где применено обновление, CLR будет загружать управляемые сборки из глобального кэша сборок для всех приложений SQL Server Compact 4.0, в том числе для тех, в которых используется отдельное развертывание.

Разработка приложений, использующих отдельное развертывание

Разработка приложений для настольных компьютеров, использующих отдельное развертывание SQL Server Compact 4.0.

  1. Убедитесь, что на компьютере разработчика установлены все последние обновления для SQL Server Compact 4.0.

  2. Добавьте любые ссылки на две управляемые сборки SQL Server Compact в проект. Для этого перейдите в папку %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private в диалоговом окне Добавление ссылки в Visual Studio. (Для приложений, использующих центральное развертывание, эти ссылки добавляются на вкладке .NET.)

  3. Добавьте в проект все необходимые собственные библиотеки. Их следует добавлять путем перехода в папку %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private\x86, %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private\amd64 или в обе папки. Папка, из которой добавляются собственные библиотеки, зависит от платформы (x86, x64 или Любой ЦП), для которой разрабатывается приложение.

    Как минимум должны быть добавлены следующие собственные сборки:

    • sqlceer40EN.dll

    • sqlceme40.dll

    • sqlceqp40.dll

    • sqlcese40.dll

    Все собственные компоненты находятся в папке Private. Для удобства администрирования и использования структура каталогов с платформенными компонентами для архитектур x86 и amd64 в дистрибутиве идентична.

    Примечание

    64-разрядная установка SQL Server Compact 4.0 выполняется по принципу «все включено». Устанавливает на компьютер 32-разрядные, 64-разрядные компоненты и компоненты, нейтральные к архитектуре. 32-разрядный и 64-разрядный дистрибутивы включают собственные двоичные файлы любой архитектуры для отдельного развертывания. Таким образом, для создания приложений SQL Server Compact 4.0 для 64-разрядных компьютеров в 32-разрядной среде разработки не требуется извлекать 64-разрядные собственные сборки. Необходимо всего лишь взять собственные двоичные файлы 64-разрядной версии из папки %Program files%\Microsoft SQL Server Compact Edition\v4.0\Private\amd64.

  4. Убедитесь, что добавленные управляемые сборки и собственные библиотеки скопированы в выходной каталог при построении проекта.

Дополнительные сведения о построении приложений для настольных компьютеров см. в разделе Построение приложений для настольных компьютеров (SQL Server Compact).

См. также

Справочник

Развертывание приложений для настольных компьютеров

Основные понятия

Построение приложений для настольных компьютеров (SQL Server Compact)