1

我有一个棘手的问题。我想在 AutoCAD 2012 中创建一个“netload”-ed 的 .dll,并且我想使用 EF + SQL Server CE 4.0 Private Installation 以便能够 XCopy 程序。

我不想在客户端机器上安装 SQL Server CE 4.0,所以我选择了私有安装。问题是它依赖于配置文件,这不是一个选项,因为我只想要 XCopy 程序!

我正在使用 nuget 包EntityFramework.SqlCompact。无论我尝试什么,我都会得到

找不到请求的 .net 框架数据提供程序

AutoCAD 内部异常,因为 AutoCAD 有自己的配置,几乎是空的。

有什么方法可以将应用程序配置为使用本地复制的 dll-s 而无需配置?有没有办法包含另一个配置?

我也可以发布示例代码。

4

1 回答 1

1

此错误是由实体框架引起的,而不是 SQL Compact,因为 EF 依赖于 DbProvider 配置。因此,如果您使用经典的 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 回答