C# SQLite正在阻止WinForm应用程序在使用ClickOnce部署后启动
我有一个基于组件的应用程序,用c#中的visual studio构建。有一个UI和一个数据组件。 数据组件访问sqlite数据库。在IDE中,我可以启动程序,这样UI就会出现,一切正常。但是,如果我想使用ClickOnce部署应用程序,安装是可行的,但应用程序不会移动。日志文件中也没有错误 我尝试了几种方法,发现它必须与SQLite有关,因为如果我在部署应用程序时不使用与数据库的连接,它就会工作 可能是SQLite.Interop.dll有问题,因为当我编写unittests时,它们也无法加载此dll。我必须手动将其放入正确的unittest项目文件夹中。使用NuGet安装interop.dll也会引发错误 对于代码,我没有什么特别的。 这里有一个简短的例子。很抱歉使用了德语名称C# SQLite正在阻止WinForm应用程序在使用ClickOnce部署后启动,c#,visual-studio,sqlite,C#,Visual Studio,Sqlite,我有一个基于组件的应用程序,用c#中的visual studio构建。有一个UI和一个数据组件。 数据组件访问sqlite数据库。在IDE中,我可以启动程序,这样UI就会出现,一切正常。但是,如果我想使用ClickOnce部署应用程序,安装是可行的,但应用程序不会移动。日志文件中也没有错误 我尝试了几种方法,发现它必须与SQLite有关,因为如果我在部署应用程序时不使用与数据库的连接,它就会工作 可能是SQLite.Interop.dll有问题,因为当我编写unittests时,它们也无法加载此
internal class Daten : IDBAnforderungen
{
private SQLiteConnection _conn;
public Daten()
{
_conn = new SQLiteConnection("Data Source=c:/Datenbank/mydb.sqlite; Version = 3;");
}
编辑:
在这个线程中有一个异常。但我一开始什么都没有
编辑:
我的解决方案就是,切换到MySQL。所以当时没有问题 尝试包装_conn=new。。。在一个try-catch块的内部。。。很有可能它会在那里爆炸,并从任何伐木中坠落。我还想说在catch中添加一个日志语句。可能是的副本。虽然不是专门针对ClickOnce,但我怀疑原因是相同的——缺少SQLite DLL。安装完成后,请确保将它们显式添加到ClickOnce中,是否存在互操作DLL和C:\Datenbank\mydb.sqlite?@TonyAbrams我尝试过,没有任何更改。@MickyD我该怎么做?我刚刚尝试将相同的system.data.sqlite包安装到main项目,这是我与它的依赖项一起部署的项目。我不确定它是关于interop.dll的