SQLite 1.0.102.0和EF6 db-first部署失败

时间:2016-07-15 03:29:56

标签: c# sqlite entity-framework-6

我的开发机器是运行Windows 10的64位操作系统,基于x64的处理器。 我使用VS2015专业版和SQLite(v1.0.102.0)开发了一个简单的CRUD程序。 这是我的步骤:

  1. 使用Install-Package System.Data.SQLite在我的项目上安装Sqlite东西。
  2. app.config如下:

    <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
             <parameters>
                 <parameter value="mssqllocaldb" />
             </parameters>
        </defaultConnectionFactory>
        <providers>
            <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
            <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
        </providers>
    </entityFramework>
    <system.data>
        <DbProviderFactories>
            <remove invariant="System.Data.SQLite" />
            <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
            <remove invariant="System.Data.SQLite.EF6" />
            <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
        </DbProviderFactories>
    </system.data>
    
  3. 然后我用一些Sqlite工具创建一个数据库&amp;表

  4. 使用EF Db-Frist映射到此数据库。

  5. 添加CRUD代码。

  6. 项目平台设置为x86

  7. 调试,一切正常。
  8. 然后,我将x86 \中的所有文件复制到另一台机器:

    • 64位操作系统,基于x64的处理器。
    • Windows 10 clean。
    • NET 4.6
    • 没有安装。

    程序不起作用:实体框架提供程序类型&#39; System.Data.SQLite.EF6.SQLiteProviderServices,System.Data.SQLite.EF6&#39;在ADO.NET提供程序的应用程序配置文件中注册了具有不变名称的System.Data.SQLite.EF6&#39;无法加载...等等等等......

    相信我,我已经浪费了很长时间搜索答案,并在app.config中更改了许多设置,而不是工作。

    我希望有人有同样的问题,一旦解决,请直接给我简单的方法。感谢。

    我已经做过的事情

    • system.data.sqlite download page手动下载SQLite并安装 32位Windows安装程序(.NET Framework 4.6),只有此版本可以使用设计时组件。
    • 关注this topic添加新的提供商,现在正在工作。
    • 人们说不要使用NUGET,我信任并跟随,也没有工作。

0 个答案:

没有答案