我能够拆分数据库并使用打包解决方案来分发前端。我测试了它的exe文件,它工作正常。现在我正在更新表单,我无法找到一种仅更新前端(后端位于服务器上)的方法,而无需通过新软件包的新安装。在打包数据库的过程中,我确实创建了模板文件。
我找到了这个网站,但害怕解压缩文件。你们有人用过这个工具吗? http://www.btabdevelopment.com/ts/freetools 谢谢
我能够拆分数据库并使用打包解决方案来分发前端。我测试了它的exe文件,它工作正常。现在我正在更新表单,我无法找到一种仅更新前端(后端位于服务器上)的方法,而无需通过新软件包的新安装。在打包数据库的过程中,我确实创建了模板文件。
我找到了这个网站,但害怕解压缩文件。你们有人用过这个工具吗? http://www.btabdevelopment.com/ts/freetools 谢谢
以下是 Access 前端的部署工具列表:
您列出的那个也可以提供帮助。
问题是没有单一的方法来更新 Access 应用程序。
正如您所发现的,打包工具很不错,但它们并没有真正处理部署软件中最重要、最复杂的部分:如何更新现有安装?
Access 在这里没有一个好故事,因此有许多自定义解决方案,每个都有其缺陷和优势。
你是对的,无论如何,你必须将只包含表格的后端数据库与包含代码、表单和报告的前端分开。前端必须部署到每个用户:规则是前端只能由单个用户使用。
那么,您希望在一个好的更新故事中具备哪些特征:
用户不应该做任何事情:您希望用户在新版本的前端可用时自动获得它。
这可能意味着您的前端可以在允许用户登录或为任何工作加注星标之前检查远程文件夹上是否有可用的新版本。
如果某个版本可用,则获取并部署该版本。
有时候,因为你的开发环境可能和用户的环境不同(不同的服务器名,不同的共享文件夹等),你可能还需要将前端的表重新链接到后端的正确路径之后部署。
几年来,我已经完善了自己的系统,无需缝合即可工作。
当用户单击应用程序图标时,会启动一个小型启动器应用程序,而不是直接启动应用程序。
我使用的启动器是一个用 .Net 编写的简单Click-Once应用程序(因此它可以自动更新)。
启动器负责确保主应用程序只运行一次,并在更新可用时检查和部署新版本(或降级)。
更新被简单地打包成包含新更新所需的所有文件的 zip 文件。
文件的名称包含版本号,这样myAppFE-2013-08-01.zip
按名称对客户端包列表进行排序可以很容易地选择最新的包。
所有这些前端包都存储在服务器上的共享文件夹中,例如,如果我的后端数据库在 中\\myServer\myApp\DB
,则前端包可以保存在\\myServer\myApp\FE
.
当启动器检测到有新包可用时,它会删除用户机器上前端的现有文件夹,并在其中解压缩新包。
一旦启动器完成其任务,它就会启动应用程序前端。
当应用程序前端第一次启动时,如果它们指向错误的位置,它可以进行更多检查以重新链接表。
检测新包的另一种方法是在服务器上保留一个小文本文件,其中包含最新包的文件名。
每当启动前端时,它都可以检查它正在运行的包名称是否与文件中列出的包名称相同。如果没有,则需要升级/降级。
此解决方案的优点之一是,一旦安装了 Access Runtime,用户就可以在机器上的正常用户会话中运行,而无需管理员权限:单击一次启动器不需要任何管理员权限,如果您部署您的访问用户文件夹下的前端%APPDATA%
,您根本不需要提升权限来更新您的前端。
首次部署时,您的启动器还应负责将前端文件夹的位置注册为受信任位置,以便 Access 允许它在不禁用 VBA/宏的情况下运行。
这些只是您可以轻松添加的一组注册表项HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Security\Trusted Locations\
(确切的注册表项取决于您的 Office 版本以及您使用的是 32 位还是 64 位系统)。