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から新しく起動すると、プログラムメニューはプログラムをCommonApplicationDataの下にインストールされたデータベースに接続しますが、インストール後にアプリケーションを起動して行った変更を確認できません。したがって、デスクトップ/プログラムファイル/ユーザーのプログラムメニューからプログラムを開始する=>すべてが正常ですが、インストール後の最初の(自動)開始は問題です。何が起こっているのかわからない、何かアイデアはありますか?