2

編集:私の質問は、中程度の信頼でSQL Server CEを使用するWebアプリを構築するために必要なすべての手順は何ですか?

これを投稿する前に、デスクトップバージョンをbinディレクトリにコピーしていましたが、それが機能しなかったため、さらに多くの手順を実行する必要があると確信しています。

エラー:ADO.NETプロバイダーとSQL Server Compactのネイティブバイナリの間でファイルバージョンの不一致が検出され、機能が正しくなくなる可能性があります。これは、異なるバージョンのSQL Server Compactの複数のインスタンスが存在するか、SQLServerCompactバイナリと同じ名前のバイナリが間違っていることが原因である可能性があります。一致するバージョンのSQLServerCompactバイナリをインストールしてください。

Webアプリ:VS2010で構築されたMVC3

私の開発マシンではすべてが正常に機能します。

この投稿を読んだ後、参照を削除し、SqlServerCE.dllとSqlServerCe.Entity.dllをbinディレクトリにコピーしました。

それはからエラーを変更しました

ファイルまたはアセンブリ'System.Data.SqlServerCe、Version = 4.0.0.0、Culture = neutral、PublicKeyToken=89845dcd8080cc91'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULTからの例外:0x80131040)

現在のものに。

デスクトップフォルダからSqlServerCE.dllをコピーしたので、中程度の信頼で実行できました。

私のWeb.configファイルから:

  `       <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
        <assemblyIdentity name="System.Data.SqlServerCe" 
                          publicKeyToken="89845dcd8080cc91" culture="neutral"/>
        <bindingRedirect oldVersion="4.0.0.0-4.0.0.1" newVersion="4.0.0.1"/>

      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SqlServerCe.4.0" />
      <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    </DbProviderFactories>`

編集:みんなありがとう。

パッケージディレクトリにSqlServerCompact.4.0.8852.1があります。

パッケージにあるSqlServerCE.dllとSqlServerCe.Entity.dllをbinディレクトリから削除しました。ネイティブバイナリを自分のビンにコピーしました(そしてそれらはプロジェクトに含まれています)が、それでも次のメッセージが表示されます:

ADO.NETプロバイダーとSQLServerCompactのネイティブバイナリの間でファイルバージョンの不一致が検出され、機能が正しくなくなる可能性があります。これは、異なるバージョンのSQL Server Compactの複数のインスタンスが存在するか、SQLServerCompactバイナリと同じ名前のバイナリが間違っていることが原因である可能性があります。一致するバージョンのSQLServerCompactバイナリをインストールしてください。

新しいバージョンのEntityFrameworkを使用していて、インストールがロールバックされたため、提案されたnugetパッケージを使用できませんでした。

共有ホスティングサーバー上で中程度の信頼で動作するSQLServerCEのセットアップを誰かが推奨できる場合は、新しいプロジェクトからやり直す準備ができています。

これは、プロジェクトを作成したときに行っていた(そして機能しない)ことです。

a。インストールパッケージSqlServerCompactb。Install-PackageSystem.Web.Providersc。Install-PackageEntityFrameworkd。インストール-パッケージEntityFramework.SqlServerCompact

4

1 に答える 1

3

SqlCompact がこのバージョンであるかどうかをパッケージ ディレクトリで確認してください: SqlServerCompact.4.0.8852.1

はいの場合、packages\SqlServerCompact.4.0.8852.1\NativeBinaries 内のファイルが異なるため、これらのファイルをコピーする必要があります。

ただし、このバージョンは中程度の信頼では実行されません。SqlCompact のバージョンが 4.0.0.1 に変更され、.NET 4 構成ファイルでデフォルトで 4.0.0.0 のみが承認されているためです。中程度の信頼で実行されるバージョンが必要な場合は、これを試してください https://nuget.org/packages/EntityFramework.SqlServerCompact/4.1.8482.2

于 2012-03-08T23:33:16.090 に答える