我使用vb.net(vs2010)和SQLite数据库有一个奇怪的问题:我用安装和部署项目制作了一个安装包,一切似乎都运行正常。我的SQLite数据库安装在CommonApplicationData文件夹和ProgramFiles \ ProductName下的软件下。在安装项目中,我设置了自定义操作,用户可以选择在安装后运行软件: /的startApp = “[CHECK]”
Private Sub MyInstaller_Committed(ByVal sender As Object, ByVal e As InstallEventArgs)
Dim productName As String = Context.Parameters("ProductName")
StartAfterInstall = Me.Context.Parameters.Item("StartApp")
If StartAfterInstall = "1" Then
Directory.SetCurrentDirectory(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location))
Shell(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\FB.exe")
End If
End Sub
在ApplicationEvents.vb中,我设置了StartUp:
AppDomain.CurrentDomain.SetData("DataDirectory", Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData))
这就是奇怪的行为:如果用户在安装后启动应用程序,程序将连接到另一个(?)数据库,而不是安装在 CommonApplicationData 下。如果用户插入数据,似乎一切正常。 关闭应用程序并从desktop / programfiles / users程序菜单启动new后,将程序连接到CommonApplicationData下安装的数据库,但是他看不到安装后启动应用程序所做的更改。所以从desktop / programfiles / users program menu =>启动程序一切都很好,但安装后的第一个(自动)启动是一个问题。我不知道会发生什么,有什么想法吗?
答案 0 :(得分:0)
您的安装管理员权限是否具有? 如果是,可能会发生以下情况:
解决这个问题: