将配置添加到App.config文件时出错

相关问题: 在另一台机器上运行我的应用程序会给我一个错误

这就是我的App.config文件的样子:

             

在我的开发机器上运行它可以工作,但是当部署到另一台计算机时,我收到了数据提供程序错误。 (见上面的相关问题)。

建议的解决方案是将其添加到App.config文件中:

      

当我将其添加到App.config文件时,我在Visual Studio 2010中启动应用程序时出现此错误:

为system.data创建配置节处理程序时发生错误:列’InvariantName’被限制为唯一。 值’System.Data.SQLite’已存在。 (C:\ Users \ Sergio.Tapia \ Desktop \ DocumentScannerDanyly \ DocumentScannerDanyly \ bin \ Debug \ DocumentScannerDanyly.vshost.exe.Config line 13)

关于这个错误是什么的任何建议? 此外,由于.sqlite文件的位置与安装位置有关,我是否必须将AppConfig文件中的connectionString更改为更动态的文件?

谢谢您的帮助。

编辑:

当我按照这里的人的建议将其添加到配置中时,我收到一个错误:

       

无法找到或加载已注册的.Net Framework数据提供程序。

问题很可能是您在连接字符串中硬编码桌面路径:

 C:\Users\Sergio.Tapia\Desktop\DocumentScannerDanyly\DocumentScannerDanyly\DocumentsDB.sql 

除非此文件与另一台机器上的完全相同的位置存在,否则它可能无法正常工作

这是因为当您安装SqlLite时,它会使用以下命令更新您的machine.config:

  

因为您没有在安装了SqlLite的计算机上运行,​​所以DbProviderFactories不了解SqlLite。

在目标计算机上安装SqlLite或将其添加到您的配置:

       

这将阻止您与machine.config发生冲突,并允许它在目标计算机上运行。 如果您正在使用任何其他Sql数据提供程序,您还需要添加它。

编辑

如果清除不起作用,请尝试:

       

当我添加上述解决方案时,我遇到了同样的问题

无法找到或加载已注册的.Net Framework数据提供程序。

但解决这个问题的方法是在参考文献中为System.Data.SQLiteSystem.Data.SQLite.Linq设置“Copy Local”为true。

我希望它也能帮到你。