【问题标题】:Entity Framework + SQL Server CE 4.0 in a .DLL loaded in AutoCAD 2012x64在 AutoCAD 2012x64 中加载的 .DLL 中的实体框架 + SQL Server CE 4.0
【发布时间】:2012-05-12 20:32:57
【问题描述】:

我有一个棘手的问题。我想在 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 而无需配置?有没有办法包含另一个配置?

我也可以发布示例代码。

【问题讨论】:

    标签: sql-server-ce entity-framework-4.3 autocad


    【解决方案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>
    

    【讨论】:

    • 非常感谢您的回答。但问题是我在 AutoCAD 中将程序作为 dll 而不是 exe 加载,而且我没有配置。有没有办法将配置与 dll 一起使用?我尝试将此配置插入 acad.exe.config 但仍然相同。我在这里发布了示例代码:mediafire.com/file/yucyc9pot1kj1rp/CAD_SqlCe_Ef.zip/file/…
    • 正确的版本在这里 - mediafire.com/?cd8f1chbief99g2 问题是我不能使用 config 或者只是不知道如何将它与 dll 一起使用。
    • 有很多例子展示了如何在 SqlCe 已经在 GAC 中或带有配置时执行此操作。即使在 MS 文档上标记为“私有安装”的示例也不是私有的,因为它们依赖于 GAC 中的 SqlCe。我需要它没有 GAC。如果有办法在程序位于 dll 中时使配置工作 - 这对我来说很好。在阅读了我发现并尝试过的所有内容后,我已在此处发布。感谢您的时间!我真的很感激!
    • 正如我已经说过的,如果需要 EF,您无法做到这一点。请参阅我关于私有部署的博客文章 - 对于 ADO.NET,无需配置。 -erikej.blogspot.com/2011/02/…
    • 现在我明白了。谢谢您的回答。我关注你的帖子,但似乎我错过了那个明显的帖子。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多