1

大変な問題があります。AutoCAD 2012内で「netload」された.dllを作成し、プログラムをXCopyできるようにするためにEF + SQL ServerCE4.0プライベートインストールを使用したいと思います。

クライアントマシンにSQLServerCE 4.0をインストールしたくないので、プライベートインストールを選択しました。問題は、XCopyプログラムのみが必要なため、ここではオプションではない構成ファイルに依存していることです。

nugetパッケージを使用していますEntityFramework.SqlCompact。私が何をしようとしても、

要求された.netFrameworkデータプロバイダーが見つかりません

AutoCAD内の例外。AutoCADにはほとんど空の独自の設定があるためです。

構成なしでローカルにコピーされたdll-sを使用するようにアプリを構成する方法はありますか?別の構成を含める方法はありますか?

サンプルコードも投稿できます。

4

1 に答える 1

1

EFはDbProvider構成に依存しているため、このエラーはSQLCompactではなくEntityFrameworkが原因で発生します。したがって、データアクセスに代わりに従来のADO.NETを使用する場合は、プライベートデプロイメントが機能します。それ以外の場合は、app.configにこれを含める必要があります。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<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.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
 </DbProviderFactories>
 </system.data>
</configuration>
于 2012-05-13T06:15:43.180 に答える