Private Bereitstellung oder zentrale Bereitstellung (SQL Server Compact)

Sie können mit SQL Server Compact 4.0 erstellte verwaltete Anwendungen bereitstellen, indem Sie entweder eine zentrale oder eine private Bereitstellung für SQL Server Compact verwenden. Bei einer zentralen Bereitstellung wird SQL Server Compact mithilfe der ausführbaren Setupdatei auf einem Computer installiert. Bei einer privaten Bereitstellung werden die SQL Server Compact-Binärdateien im Anwendungsordner selbst abgelegt. Die auf diese Weise durchgeführte private Bereitstellung von SQL Server Compact wird auch als XCOPY-Bereitstellung von SQL Server Compact bezeichnet.

Bei einer zentralen Bereitstellung nutzt eine Anwendung die von SQL Server Compact verwalteten Assemblys (System.Data.SqlServerCe.dll und System.Data.SqlserverCe.Entity.dll), die im globalen Assemblycache (Global Assembly Cache, GAC) installiert wurden, sowie die systemeigenen Komponenten von SQL Server Compact am zentralen Speicherort, also %Program Files%\Microsoft SQL Server Compact Edition\v4.0. Falls eine neuere Version oder ein Update von SQL Server Compact 4.0 installiert wird, verwenden die Anwendungen, die die zentrale Bereitstellung von SQL Server Compact nutzen, bei der nächsten Ausführung die aktualisierte Version von SQL Server Compact 4.0. Ein möglicher Nachteil der zentralen Bereitstellung liegt darin, dass SQL Server Compact 4.0 nur von einem Benutzer mit Administratorrechten auf dem Computer installiert werden kann. (Das liegt daran, dass diese Privilegien für die Installation von Assemblys im GAC und die Registrierung systemeigener Komponenten erforderlich sind.) Wenn die Anwendung mithilfe der ClickOnce-Technologie und SQL Server Compact 4.0 zentral bereitgestellt wird (als Voraussetzung während der Installation), schlägt die Installation möglicherweise fehl, da dem Benutzer die notwendigen Privilegien zur Installation von SQL Server Compact 4.0 fehlen.

Bei der privaten Bereitstellung verwendet eine Anwendung ihre eigene lokale Kopie der verwalteten Assemblys von SQL Server Compact sowie die erforderlichen systemeigenen SQL Server Compact-Bibliotheken. Diese Assemblys und systemeigenen Bibliotheken werden mit der Anwendung gebündelt und während der Bereitstellung unter dem Dateipfad der Anwendung auf dem Zielsystem installiert. Die privat bereitgestellten Assemblys von SQL Server Compact müssen über eine höhere Versionsnummer als die zentral im GAC installierten Assemblys verfügen, damit die Anwendung anstelle der zentral bereitgestellten die privat bereitgestellten Assemblys verwendet. Wenn keine SQL Server Compact-Assemblys im GAC vorhanden sind (SQL Server Compact wurde nicht zentral auf dem Zielcomputer bereitgestellt), verwendet die Anwendung ihre privat bereitgestellten Assemblys. Ein Vorteil der privaten Bereitstellung liegt darin, dass Probleme, die in Zusammenhang mit der zentralen Bereitstellung auf gesperrten Systemen auftreten können, vermeidbar sind, weil die SQL Server Compact-Assemblys nicht im GAC installiert und die systemeigenen Komponenten nicht bei COM registriert werden. Benutzer benötigen auf dem Computer also keine Administratorrechte. Die private Bereitstellung bedeutet jedoch größere Verantwortung für den Entwickler, weil Updates für privat bereitgestellte SQL Server Compact-Assemblys nicht zentral ausgeführt werden können. Wenn ein Update der mit der Anwendung bereitgestellten SQL Server Compact-Assemblys erforderlich ist, muss der Entwickler die Anwendung mit einer SQL Server Compact 4.0-Version, die die erforderlichen Updates einschließt, neu erstellen und sie dann erneut veröffentlichen.

Installation

Das Installationsverhalten von SQL Server Compact 4.0 auf 32-Bit- und 64-Bit-Betriebssystemen entspricht den folgenden Angaben:

SQL Server Compact 4.0

Betriebssystem

32-Bit

32-Bit

Erfolgreich

64-Bit

Fehler

Folgende verwalteten und systemeigenen Assemblys werden installiert:

Verwaltete Assemblys: Folgende verwaltete Assemblys werden am Speicherort %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private installiert:

  • System.Data.SqlServerCe.dll

  • System.Data.SqlServerCe.Entity.dll

Systemeigene Assemblys: Folgende systemeigenen Assemblys werden unter %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private\x86 und %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private\amd64 installiert, ausgenommen sqlceoledb40.dll, die sich am Speicherort %Program Files%\Microsoft SQL Server Compact Edition\v4.0 befindet.

  • sqlceca40.dll

  • sqlcecompact40.dll

  • sqlceer40EN.dll

  • sqlceme40.dll

  • sqlceoledb40.dll

  • sqlceqp40.dll

  • sqlcese40.dll

Zusätzlich zu den oben aufgeführten gibt es eine Assembly und ein Manifest für die Microsoft Visual C++ 2008-Laufzeitbibliotheken (CRT):

  • msvcr90.dll

  • Microsoft.VC90.CRT.manifest

Updates und private Bereitstellung

Eines der Probleme bei der privaten Bereitstellung liegt darin, dass von der CLR standardmäßig Assemblys aus dem GAC geladen werden. Aus diesem Grund ist es schwierig, Updates für privat bereitgestellte SQL Server Compact-Assemblys auszuführen, wenn eine frühere Version von SQL Server Compact im GAC vorhanden ist, da die CLR weiterhin die SQL Server Compact-Assemblys aus dem GAC lädt. Der einzige Fall, in dem eine privat bereitgestellte Assembly von der CLR geladen wird, liegt vor, wenn die Assembly über eine Version verfügt, die sich von der im GAC vorhandenen Version unterscheidet und die Anwendung mit der Assembly kompiliert wurde, die im GAC bereitgestellt ist.

In SQL Server Compact 4.0 wurde dieses Problem wie folgt behoben:

  • Erhöhen der Assemblyversionsnummer für alle Softwareupdates einschließlich Hotfixes, Service Packs, wichtiger Patches und Sicherheitsupdates. Die Assemblyversion wird wie folgt erhöht: 4.0.0.1, 4.0.0.2, 4.0.0.3 usw.

  • Installation zusätzlicher Kopien der verwalteten Assemblys (System.Data.SqlServerCe.dll und System.Data.SqlServerCe.Entity.dll) im folgenden Ordner: %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private.

Updates werden auf folgende Weise angewendet:

  • Bei regulären Hotfixes wird das Update auf alle Kopien einer oder beider verwalteten Assemblys angewendet. Die Assemblyversion wird jedoch nur für Kopien der Assemblys im Ordner Private aktualisiert. Dadurch wird sichergestellt, dass Assemblys im Ordner Private auf einem Entwicklungscomputer über eine höhere Versionsnummer verfügen als die im GAC installierten Assemblys für nicht wichtige Updates. Außerdem wird so gewährleistet, dass die CLR für Anwendungen, die die private Bereitstellung auf Computern verwenden, auf denen das Update angewendet wird, weiterhin die SQL Server Compact 4.0-Assemblys aus dem Anwendungspfad lädt (weil sich die Versionsnummer der Assemblys im GAC nicht ändert).

  • Für Sicherheitsupdates, Service Packs und wichtige Updates wird das Update auf alle Kopien der beiden verwalteten Assemblys angewendet, und außerdem wird die Assemblyversion aller Assemblys aktualisiert. Darüber hinaus wird die Herausgeberrichtlinie aktualisiert, um sicherzustellen, dass Assemblys einer niedrigeren Version automatisch an die neue Version umgeleitet werden. Dadurch wird sichergestellt, dass die CLR auf Computern, auf denen das Update angewendet wird, für alle SQL Server Compact 4.0-Anwendungen verwaltete Assemblys aus dem GAC lädt; einschließlich der Anwendungen, für die die private Bereitstellung verwendet wurde.

Entwickeln von Anwendungen, die die private Bereitstellung verwenden

So entwickeln Sie eine Desktopanwendung, die die private Bereitstellung von SQL Server Compact 4.0 verwendet

  1. Stellen Sie sicher, dass Updates für SQL Server Compact 4.0 auf dem Entwicklungscomputer aktuell sind.

  2. Fügen Sie dem Projekt alle Verweise auf die beiden verwalteten Assemblys von SQL Server Compact hinzu, indem Sie in Visual Studio im Dialogfeld Verweis hinzufügen zum Ordner %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private navigieren. (Bei Anwendungen, die die zentrale Bereitstellung verwenden, werden diese Verweise von der Registerkarte .NET hinzugefügt.)

  3. Fügen Sie dem Projekt alle erforderlichen systemeigenen Bibliotheken hinzu. Dazu navigieren Sie zum Ordner %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private\x86, zum Ordner %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private\amd64 oder zu beiden. Aus welchem Ordner Sie die systemeigenen Bibliotheken hinzufügen, hängt von der Plattform ab (x86, x64 oder Beliebige CPU), für die Sie die Anwendung entwickeln.

    Es müssen mindestens folgende systemeigenen Assemblys hinzugefügt werden:

    • sqlceer40EN.dll

    • sqlceme40.dll

    • sqlceqp40.dll

    • sqlcese40.dll

    Alle systemeigenen Komponenten können im Ordner Private abgelegt werden. Zur einfacheren Verwaltung und Verwendung stimmt die Ordnerstruktur der systemeigenen Komponenten für x86- und amd64-Plattformen mit der Verzeichnisstruktur im Setup überein.

    Hinweis

    Die 64-Bit-Version des SQL Server Compact 4.0-Setups stellt ein vollständiges Setup dar. Auf dem Computer werden die 32-Bit- und die 64-Bit-Komponenten sowie von der Architektur unabhängige Komponenten installiert. Sowohl das 32-Bit- als auch das 64-Bit-Setup enthalten systemeigene Binärdateien für die private Bereitstellung beider Architekturen. Daher müssen Sie beim Erstellen von SQL Server Compact 4.0-Anwendungen für 64-Bit-Computer mithilfe einer 32-Bit-Entwicklungsumgebung keine systemeigenen 64-Bit-Assemblys extrahieren. Sie müssen nur systemeigene 64-Bit-Binärdateien aus dem Ordner %Program files%\Microsoft SQL Server Compact Edition\v4.0\Private\amd64 auswählen.

  4. Stellen Sie sicher, dass die verwalteten Assemblys und die oben hinzugefügten systemeigenen Bibliotheken in die Buildausgabe kopiert werden.

Ausführlichere Informationen zum Erstellen von Desktopanwendungen finden Sie unter Erstellen von Anwendungen für Desktopcomputer (SQL Server Compact).

Siehe auch

Verweis

Bereitstellen von Desktopanwendungen

Konzepte

Erstellen von Anwendungen für Desktopcomputer (SQL Server Compact)