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


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

Развертывание управляемых приложений, построенных на основе SQL Server Compact 3.5, производится с использованием либо центрального, либо отдельного развертывания для SQL Server Compact. При центральном развертывании SQL Server Compact устанавливается на компьютер из файла установщика Windows (MSI), а на устройство — копированием и установкой CAB-файлов 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), устанавливаемые в глобальный кэш сборок (GAC), а собственные компоненты SQL Server Compact регистрируются как COM-объекты. Это означает, что обновление SQL Server Compact 3.5 может обслуживаться централизованно с помощью центра обновления Майкрософт. При центральном развертывании SQL Server Compact приложение будет использовать новую версию SQL Server Compact 3.5 при следующем запуске. К недостаткам центрального развертывания можно отнести то, что установка SQL Server Compact 3.5 может быть выполнена только пользователем с правами доступа администратора на этом компьютере (поскольку такие права доступа необходимы для установки сборок в глобальном кэше сборок и регистрации собственных компонентов). Если приложение развертывается с помощью технологии ClickOnce и используется центральное развертывание SQL Server Compact 3.5 в процессе установки необходимого программного обеспечения, то установка может завершиться ошибкой, поскольку пользователю будет недостаточно прав доступа для установки SQL Server Compact 3.5.

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

Примечание

Важные обновления безопасности для SQL Server Compact применяются через центр обновления Майкрософт даже на тех компьютерах, где производилась отдельная установка SQL Server Compact. Эти обновления будут применены даже в том случае, если на компьютере отсутствует центральная установка SQL Server Compact (сборки SQL Server Compact не установлены в глобальном кэше сборок, а собственные библиотеки SQL Server Compact не зарегистрированы).

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

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

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

Начиная с версии SQL Server Compact 3.5 с пакетом обновления 1 (SP1), эта проблема решается следующими средствами:

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

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

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

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

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

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

Примечание

Для разработки приложений для настольных компьютеров предпочтительной средой является Visual Studio 2010. Для разработки приложений для интеллектуальных устройств предпочтительной средой является Visual Studio 2008 с пакетом обновления 1 (SP1). Visual Studio 2010 не обеспечивает поддержку разработки приложений для интеллектуальных устройств. Дополнительные сведения см. в разделе Установка среды разработки.

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

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

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

  3. Добавьте в проект все необходимые собственные библиотеки. Они добавляются из папки %Program Files%\Microsoft SQL Server Compact Edition\v3.5, %Program Files(x86)%\Microsoft SQL Server Compact Edition\v3.5 либо из обеих. Папка, из которой добавляются собственные библиотеки, зависит от платформы (x86, x64 или Любой ЦП), для которой разрабатывается приложение. Как минимум должны быть добавлены следующие собственные сборки: sqlceme35.dll, ssceqp35.dll, sscese35.dll и sqlceer35xx.dll.

    Примечание

    64-разрядные собственные сборки SQL Server Compact 3.5 не устанавливаются на 32-разрядном компьютере. Для создания приложений SQL Server Compact 3.5 для 64-разрядных компьютеров в 32-разрядной среде разработки необходимо извлечь эти сборки из пакета установки 64-разрядной версии SQL Server Compact 3.5 (файл SSCERuntime_x64-RUS.msi). Дополнительные сведения см. в разделе Как извлечь 64-разрядные DLL-библиотеки из установщика среды выполнения SQL Server Compact.

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

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

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

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

  2. Добавьте ссылку на поставщик данных .NET Compact Framework для SQL Server Compact на вкладке .NET в диалоговом окне Добавление ссылки в среде Visual Studio. При этом в проект будет добавлен поставщик данных из папки %Program Files%\Microsoft SQL Server Compact Edition\v3.5\Devices. Этот шаг одинаков для всех приложений для интеллектуальных устройств, независимо от того, какой тип развертывания SQL Server Compact используется — центральное или отдельное.

  3. Добавьте в проект все необходимые собственные библиотеки. Их можно добавить из папки, соответствующей целевой платформе: %Program Files%\Microsoft SQL Server Compact Edition\v3.5\Devices\platform\processor. Как минимум должны быть добавлены следующие собственные библиотеки: sqlceme35.dll, ssceqp35.dll, sscese35.dll и sqlceer35xx.dll.

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

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

См. также

Другие ресурсы

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

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

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

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