尊敬的先生,
使用ClickOnce部署具有mdb数据库作为数据文件的应用程序。在尝试备份mdb数据库文件时,它会在测试环境中进行备份调试或发布。但是一旦通过clickonce安装了应用程序,它就说无法找到数据库文件。脚本中有错误吗?
Private Sub myBackupFunctionOne()
'Get the database path
Dim CurrentDatabasePath As String = Environment.CurrentDirectory + "\myDB.mdb"
Dim fbd As New FolderBrowserDialog()
If fbd.ShowDialog() = DialogResult.OK Then
'Set the path where you want to store the backup file
Dim PathtobackUp As String = fbd.SelectedPath.ToString()
System.IO.File.Copy(CurrentDatabasePath, PathtobackUp & "\BackUp.MDB", True)
MessageBox.Show("Back Up SuccessFull! ")
End If
End Sub
你的忠实
Murulimadhav
答案 0 :(得分:1)
ClickOnce将数据文件存储在特殊文件夹中。您可以检测应用程序是否在运行时是ClickOnce部署,如果是,则获取该文件夹路径,如果不是,则使用程序文件夹路径,例如
Dim dataDirectoryPath = If(ApplicationDeployment.IsNetworkDeployed,
ApplicationDeployment.CurrentDeployment.DataDirectory,
Application.StartupPath)
Dim databaseFilePath = Path.Combine(dataDirectoryPath, "data.mdb")
请注意,我使用Application.StartupPath
作为prgram文件夹而不是Environment.CurrentDirectory
。 Environment.CurrentDirectory
返回的路径可能会在会话过程中发生变化,甚至可能不会作为程序文件夹启动,因此在这种情况下使用它是一个不好的选择。另一方面,Application.StartupPath
永远不会改变,并且将始终返回运行当前应用程序的文件夹。