我可以使用 clickOnce 部署 MS Access 数据库吗?

Can i use clickOnce to deploy MS Access database?

我在 .mdb 访问文件中开发了一个应用程序,其中的表链接到 sql 服务器

我尝试将 mdb 文件放在共享给所有用户的文件夹中,但同时访问经常破坏文件。

所以我正在尝试将 .mdb 文件部署到每台客户端计算机并保持更新。我创建了一个 winform 应用程序来检查 mdb 文件版本并将其复制到本地文件夹,然后打开本地副本

但即使是这样,如果太多用户同时使用 winform 启动器应用程序,我也会遇到问题

所以我在想有没有更好更简单的方法:

我可以使用 clickonce 直接部署访问文件并创建一个愚蠢的网络表单来启动它吗?

我已经创建了网络表单,但如何添加 mdb 文件以部署流程?我必须将它添加到资源中吗?在那种情况下是否嵌入?

在这种情况下,clickonce 如何检测到访问权限已修改?

如果我理解正确,您的 .mdb 文件是 SQL 服务器后端的前端。在那种情况下,是的,每个用户都应该拥有该 FE 的自己的副本。如果您进行网络搜索,可以找到许多用于分发 Access FE 的解决方案,而无需重新发明轮子。最喜欢的是 Tony 的 Auto FE Updater http://autofeupdater.com/.

终于找到解决方法: 我将数据库添加到资源中,将构建操作设置为 "Content",然后我的 program.cs 是这样的:

    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        string nomeFile = @"\EW.accde";
        string DestinationPath;
        string codeBase = Assembly.GetExecutingAssembly().CodeBase;
        UriBuilder uri = new UriBuilder(codeBase);
        string path = Uri.UnescapeDataString(uri.Path);
        DestinationPath = System.IO.Path.GetDirectoryName(path) + @"\Resources";

        Process.Start(DestinationPath + nomeFile);
    }

通过这种方式,我只需将新数据库复制到项目中,然后使用 clickonce 部署应用程序

安装应用程序后,只需启动数据库文件