我为Outlook创建了一个VSTO插件,并且在开发机器上的发布和调试模式下都可以正常工作。即使我手动删除了所有构建文件和sqllite数据库,它也将在下次启动Outlook时从头开始创建所有内容,并且好像什么都没有发生一样。
当我将其安装在目标计算机上时,它根本不会创建sqllite数据库文件。它将创建要放入的目录,告诉我它将放置在什么位置,然后它只是不创建文件。然后,它无法存储以后的操作,因此就崩溃了。不幸的是,我复制了该命令以通过教程建立连接,所以不知道该怎么做!
我的代码如下:
Public Class ClsSqlLiteDatabase
Public sub new ClsSqlLiteDatabase
Try
Dim sqlite_cmd As SQLiteCommand
Dim dataFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\SBDR Toolbox\"
If (Not System.IO.Directory.Exists(dataFolder)) Then
System.IO.Directory.CreateDirectory(dataFolder)
End If
Debug.WriteLine(dataFolder & "database.sqlite")
' create a new database connection:
conn = New SQLiteConnection("Data Source=" & dataFolder & "database.sqlite;Version=3;")
' open the connection:
conn.Open()
sqlite_cmd = conn.CreateCommand()
' Let the SQLiteCommand object know our SQL-Query:
sqlite_cmd.CommandText = "CREATE TABLE IF NOT EXISTS
[MyBids] (
[pReference] NVARCHAR(2048) NULL PRIMARY KEY,
[sReference] NVARCHAR(2048) NULL,
[AM] NVARCHAR(2048) NULL,
[CC] NVARCHAR(2048) NULL,
[Customer] NVARCHAR(2048) NULL,
[Vendor] NVARCHAR(2048) NULL,
[Distributor] NVARCHAR(2048) NULL,
[NDT] NVARCHAR(2048) NULL)"
' Now lets execute the SQL ;-)
sqlite_cmd.ExecuteNonQuery()
Catch
Debug.WriteLine("Could not initialise SQLLite Database")
End Try
End Sub