Wie Bereitstellen von SQL Server Compact Edition 4.0?
Wie richte ich Microsoft SQL Server Compact 4.0?
SQL Server Compact Edition (aktuell in der version 4.0) ist:
eine Kostenlose, eingebettete Datenbank, die software-Entwickler verwenden können, für die Erstellung von Windows-desktop-Anwendungen. Es hat eine kleine Stellfläche und unterstützt private Bereitstellung der Binärdateien im Anwendungsordner.
Aber wie wollen Sie eigentlich bereitstellen?
- Microsoft sagt, es kann werden Bereitstellung im application-Ordner (gute) und unterstützt die xcopy-Bereitstellung.
- Microsoft sagt auch das es nicht werden Bereitstellung im application-Ordner (bad), und keine Unterstützung für die xcopy-Bereitstellung.
- einige Leute haben Beispiele mit einfachen xcopy-Bereitstellung, aber Sie gehen nicht in die details erforderlich, um die Bereitstellung abzuschließen
Das problem ist, dass Sie nicht verwenden die ADO OLEdb-provider, es sei denn es ist registriert. Registrieren eines OLE DB-Anbieter getan werden muss, als administrator. Das bedeutet, dass SQL Server Compact edition mit fehl-Benutzer, die kein administrator sind.
SQL Server Compact 4.0 kommt mit einer redist_enu.txt
Datei:
Den aufgeführten .exe-Dateien, installieren Sie die beiliegende Komponenten, um einen bestimmten Speicherort auf dem Zielcomputer. Dies hilft sicherzustellen, dass die Nutzbarkeit und den technischen support. Die .dll-Dateien eingeschlossen in diese .exe-Dateien sind auch einzeln erhältlich, in diesem redist.txt. Jedoch Ausschüttungen von diesen zu trennen .dlls kann zu Problemen der GEBRAUCHSTAUGLICHKEIT. Für weitere Einzelheiten sehen Sie bitte http://go.microsoft.com/fwlink/?LinkId=94589
Private Bereitstellung-Erkennung via BreadCrumb: die Private Bereitstellung von nur den nativen stack und das explizite laden von SQL Server Compact-Assembly per Assembly.LoadFrom(), .eine lokale Datei oder die Verwendung der DLL/COM-Umleitung Strategien werden nicht unterstützt und können dazu führen, GEBRAUCHSTAUGLICHKEIT Fragen. Weitere Informationen finden Sie unter http://support.microsoft.com/kb/835322 und http://msdn2.microsoft.com/en-us/library/aa375142.aspx
Microsoft SQL Server Compact 4.0
SSCERuntime_x86-ENU.exe
SSCERuntime_x86-DEU.exe
SSCERuntime_x86-FRA.exe
SSCERuntime_x86-JPN.exe
SSCERuntime_x86-RUS.exe
SSCERuntime_x86-ESN.exe
SSCERuntime_x86-ITA.exe
SSCERuntime_x86-KOR.exe
SSCERuntime_x86-CHT.exe
SSCERuntime_x86-CHS.exe
SSCERuntime_x64-ENU.exe
SSCERuntime_x64-DEU.exe
SSCERuntime_x64-FRA.exe
SSCERuntime_x64-JPN.exe
SSCERuntime_x64-RUS.exe
SSCERuntime_x64-ESN.exe
SSCERuntime_x64-ITA.exe
SSCERuntime_x64-KOR.exe
SSCERuntime_x64-CHT.exe
SSCERuntime_x64-CHS.exe
sqlcese40.dll
sqlceqp40.dll
sqlceoledb40.dll
sqlceca40.dll
sqlceme40.dll
sqlcecompact40.dll
sqlceer40en.dll
sqlceer40cn.dll/sqlceer40zh-CHS.dll
sqlceer40de.dll
sqlceer40es.dll
sqlceer40fr.dll
sqlceer40it.dll
sqlceer40ja.dll
sqlceer40ko.dll
sqlceer40tw.dll/sqlceer40zh-CHT.dll
sqlceer40ru.dll
System.Data.SqlServerCe.dll
System.Data.SqlServerCe.Entity.dll
aber es gibt keine Informationen zum verteilen von SQL Server Compact 4.0.
Zufällig spellunking rund um die undokumentierte Program Files
Ordner fand ich 7 dlls:
C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\
sqlceoledb40.dll
sqlceqp40.dll
sqlcese40.dll
sqlceca40.dll
sqlcecompact40.dll
sqlceer40EN.dll
sqlceme40.dll
Hinweis: Es gibt auch einige untergeordnete Ordner mit mehreren dlls
ich versucht, das kopieren in diese 7 dll ' s in einen Ordner, und versuchte, Sie zu öffnen eine ADO-Verbindung mit die Verbindungszeichenfolge:
Provider=Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source="store.sdf"
aber es funktioniert nicht mit 0x80004005 Unspecified error
ich habe versucht, die frobbing-widget, aber es grobbed die frobber.
app.config
, was ich davon ausgehen, bedeutet ein .NET-Anwendung. ich bin zufällig über eine native Anwendung mit xcopy-Bereitstellung. sqlceoledb40.dll
. InformationsquelleAutor der Frage Ian Boyd | 2012-05-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
habe ich die Lösung.
SQL Server Compact Edition besteht aus 7 dlls:
sqlceme40.dll
Undokumentierte native -, flach-API-Bibliothek (.netSystem.Data.SqlServerCe.dll
Montage ist ein wrapper für diese dll)sqlceca40.dll
Eine COM-dll implementiert, dassEngine
,Replication
,Error
und ein paar andere COM-Objektesqlceoledb40.dll
Eine COM-dll, die eine OLE DB-provider für SSCE (erlaubt die Verwendung von ADO)sqlcese40.dll
unbekanntsqlceqp40.dll
unbekanntsqlcecompact40.dll
unbekanntsqlceer40en.dll
unbekanntDas problem mit dem Versuch, einfach versenden diese dlls ist, dass zwei von Ihnen sind COM Objekte. COM-Objekt, dll ' s müssen registriert, z.B.:
Das problem ist, dass das registrieren einer COM-Objekt erfordert administrative Privilegien (mit einer globalen Lösung für ein lokales problem). Dies bedeutet, dass Ihre Benutzer würde
Glücklicherweise, beginnend im Jahr 2001 mit Windows XP, Microsoft löste dieses Gemeinsame problem: Registration-Free COM.
Erste, Sie erklären, dass Ihre Anwendung hat eine "Abhängigkeit" auf SQL-Server Compact Edition 4.0. Sie tun dies, indem erstellen eines assembly-manifest:
Können Sie diese Datei neben deine ausführbare Datei (als
Hyperion.exe.manifest
), oder Sie bauen es in Ihre Anwendung einRT_MANIFEST
Ressource.Beachten Sie, dass wir eine Abhängigkeit gegen as assembly namens
Microsoft.SQLSERVER.CE.4.0
. Wir erstellen diese Baugruppe zunächst durch die Schaffung eines Verzeichnis genannt:Beim bereitstellen Ihrer Anwendung, Sie wird alle 7 dll ' s, die diese umfassen "Montage" in diesem
Microsoft.SQLSERVER.CE.4.0
Unterordner, zusammen mit einem speziellen.manifest
Datei:In anderen Worten, die Anwendung Ordner, der die Anwendung enthält, und die Microsoft.SQLSERVER.CE.4.0 Ordner:
Den nächsten Teil Ihrer Aufgabe ist die Definition der
Microsoft.SQLSERVER.CE.4.0.manifest
- Datei. Anmeldung-free-COM ermöglicht eine manifest-Datei zu deklarieren, alle COM-Objekte und Ihrer clsid. Dies nahm sehr viel reverse engineering. Aber die assembly-manifest für SQL Server Compact Edition 4.0 ist:Microsoft.SQLSERVER.CE.4.0.manifest:
Der endgültige Punkt ist, dass, in der gleichen Weise haben wir eine Abhängigkeit auf eine assembly namens
Microsoft.SQLSERVER.CE.4.0
SQL Server Compact Edition 4.0 wiederum hat eine Abhängigkeit auf eine assembly namensMicrosoft.VC90.CRT
. Glücklicherweise ist die Installation von SQLCE Schiffe mit einer Kopie dieser Versammlung:Dies bedeutet die endgültige Verzeichnisstruktur ist:
InformationsquelleAutor der Antwort Ian Boyd
Für Sql Server Ce 4.0 SP1:
Statt Bewältigung all der düstere Stoff, Implementierung, ich habe gerade entschieden, umfassen die setup-Dateien selbst in meine exe-Datei als EmbeddedResource und habe dieses kleine Helfer:
Die einzige Sache, die wirklich gab mir ein Kopfschmerz wurde, verweisen auf die System.Data.SqlServerCe.dll - es ist einfach nicht IlMerge, so dass anstelle ich es geladen hat, auf Nachfrage, in meiner main:
InformationsquelleAutor der Antwort Casper Leon Nielsen