ClickOnce安装,无法查找包含的Mdb数据文件以进行备份还原功能

时间:2015-02-02 02:58:42

标签: vb.net

尊敬的先生,

使用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

1 个答案:

答案 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.CurrentDirectoryEnvironment.CurrentDirectory返回的路径可能会在会话过程中发生变化,甚至可能不会作为程序文件夹启动,因此在这种情况下使用它是一个不好的选择。另一方面,Application.StartupPath永远不会改变,并且将始终返回运行当前应用程序的文件夹。