Entity Framework 4とSQL Server CEデータベース3.5を使用してWPFアプリケーションを開発していますが、正しく動作しています。ドライバインストールのないSQL Server CEのEntity Framework
しかし、このアプリケーションを.Net Framework 4がインストールされているが、SQL Server Compact 3.5
ドライバなしのマシンで実行したいと思っています。インストーラーはありません。出来ますか?
私は次のことを試してみました:
System.Data.SqlServerCe
とSystem.Data.SqlServerCe.Entity
への参照を追加し、ローカルコピーが構築できるよう
<configuration> <connectionStrings> <add name="DbEntities" connectionString="metadata=res://*/Model.Model1.csdl|res://*/Model.Model1.ssdl|res://*/Model.Model1.msl;provider=System.Data.SqlServerCe.3.5;provider connection string="Data Source=|DataDirectory|\Data\Database1.sdf"" providerName="System.Data.EntityClient"/> </connectionStrings> <system.data> <DbProviderFactories> <add name="SQL Server Compact Edition Data Provider" invariant="System.Data.SqlServerCe" description=".NET Framework Data Provider for Microsoft SQL Server Compact Edition" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/> </DbProviderFactories> </system.data> </configuration>
のapp.configにセクションを作成しますSQL Server CEドライバがインストールされていないマシンにコピーします。それはデータコンテキストを作成するために来るとき、私はこのエラーを取得しておいてください。
System.ArgumentExceptionの:指定されたストアプロバイダがコンフィグレーションでは見られない、または有効ではありませんすることができます。 --->
System.ArgumentException:要求された.Net Frameworkデータプロバイダを見つけることができません。インストールされていない可能性があります。
私は時間を失っていますか?または、SQLiteに切り替えるだけでいいですか?
ありがとうございます!
EDIT:josemiguel.torres'答えに
おかげで、私はこれを達成する方法をdetailling this postでご確認ください。しかし、私はまだアセンブリエラーがあります。
"System.IO.FileLoadException: Could not load file or assembly 'System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040)"
この問題を解決する方法については、this other postをご覧ください。 |:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
<bindingRedirect oldVersion="3.5.1.0-3.5.1.50" newVersion="3.5.1.50"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
をそれはまだ動作しません...:結合いくつかのアセンブリを追加した後 エラーメッセージは似ています
System.IO.FileLoadException: Could not load file or assembly 'System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
ファイル名: 'System.Data.SqlServerCeを、バージョン= 3.5.0.0、文化=中立、なPublicKeyToken = 89845dcd8080cc91'
私は外によ溶液。誰でも?
EDIT 2:
1.Iは、私のマシンからすべてのMicrosoft "SQL ServerのCompact Editionの" バージョンをアンインストールしました。
2. machine.configのバージョンを確認しました.DbProviderFactoriesセクションにエントリがありません。
3。私は012 SPから3.5 SP2ドライバをダウンロードし、x86パッケージをインストールしました。
4.Iは私のmachine.config(V4用のx86)と、以下のエントリを確認はDbProviderFactoriesノードの下に作成されています:
<add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
なぜそれが3.5.0.0と3.5.1.50ではないです?
justeの場合:my devマシンはWin7 x64上にあり、ターゲットマシンはWinXP x86です。
この投稿を確認http://blogs.msdn.com/b/stevelasker/archive/2008/10/22/privately-deploying-sql-server-compact-with-the-ado-net -entity-provider.aspx –
しかし、私はまだアセンブリエラーがあります。 – JackoBongo
プロジェクトのプラットフォームが「x86」に設定されていることを確認します。この問題はあなたのapp.configから来る可能性があります。接続文字列を確認してください。 –