嘿伙计们,我目前在Visual Studio 2008中开发的C#Windows窗体应用程序中遇到了Windows 7中非常奇怪的崩溃。
该应用程序 - 在XP和Vista中都很有效 - 从未打开过;相反,“此应用程序已导致错误并已停止工作”。我使用以下源代码创建了一个虚拟应用程序:
using System;
using System.Windows.Forms;
using System.Data.Common;
using System.Data.SQLite;
namespace TesteWin7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
SQLiteConnection.CreateFile("c:\\mydatabasefile.db3");
}
}
}
仍然崩溃,所以我猜这个问题必须在我的DLL上。将源代码放在try-catch块中也没用,因为没有输出消息。
对此有何想法?我正在使用System.Data.SQLite版本1.0.66.0。 干杯!
答案 0 :(得分:1)
我认为它与Windows 7没有任何关系。我怀疑这是因为您使用的是32位Windows XP和Windows Vista,而是64位Windows 7.是这样吗?
解决方案是将Visual Studio项目的平台从“任何CPU”更改为“x86”。否则sqlite DLL将不会加载到您的64位进程,因为它是32位。即使我的理论错误并且您使用的是32位Windows 7,您仍然应该这样做,因为如果不这样做,它仍会在64位系统上崩溃。
不要担心在64位计算机上以32位运行整个进程的性能。这没关系。从Visual Studio 2010开始,“x86”甚至是默认值。
答案 1 :(得分:0)
您是否检查了以下内容:
手动创建文件的代码,SQLLite的o / s:
var file = System.IO.File.CreateText("C:\TextFile.txt");
file.WriteLine("Blah");
file.Close();