部署在服务器

时间:2017-05-17 15:00:46

标签: c# entity-framework sqlite

我一直在开发一个使用Sqlite存储一些数据的Web应用程序。当我将它部署到服务器时,我收到以下错误消息。连接字符串中文件的路径是正确的,它在我的开发机器上正常工作。有什么不对?

  

实体框架提供程序类型   “System.Data.SQLite.EF6.SQLiteProviderServices,   System.Data.SQLite.EF6'在应用程序配置文件中注册   具有不变名称'System.Data.SQLite'的ADO.NET提供程序可以   没有加载。确保使用了程序集限定名称   程序集可供正在运行的应用程序使用。看到   http://go.microsoft.com/fwlink/?LinkId=260882了解更多信息

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。当我在我的开发机器中设置Sqlite时,我使用了一个安装程序,安装了(除了来自Dll的)Visual Studio的设计器工具。部署到服务器时,不包括所有必需的DLL。 Sqlite具有针对x86或x64系统的非托管库。它们安装在开发机器上,但在您的项目中不可用。当您在服务器上执行所谓的XCOPY部署时,非托管提供程序将不可用。您需要从以下链接下载它们:https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki并将它们包含在您的bin-folder中。但这还不够。

.NET项目默认设置为Any CPU。您需要将应用程序定位为运行x86或x64(我的选项),具体取决于服务器操作系统(32位或64位)。只有这样才能加载Sqlite提供程序。