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