Access 2007 Engine:如何将它包含在我的 .msi 安装程序中?
Posted
技术标签:
【中文标题】Access 2007 Engine:如何将它包含在我的 .msi 安装程序中?【英文标题】:Access 2007 Engine: How do I include it in my .msi installer? 【发布时间】:2008-12-18 15:51:28 【问题描述】:我有一个 .NET 应用程序,它使用 accdb 文件(MS Access 2007 格式)作为其数据库。要在另一台机器上安装这个应用程序,我需要在该机器上安装 Access 引擎。 Microsoft 有这个文件:AccessDatabaseEngine.exe,其中包含引擎,但在安装过程中提取时,会运行另一个 .msi 安装程序。
您可以猜到,由于此 msi 是在安装另一个 msi(我的应用程序的安装程序)期间运行的,因此 Access 引擎设置失败并出现错误 1500:“另一个安装正在进行中。在继续这个之前完成那个... "
我也找到了 Access 2007 的 Runtime,它确实安装了引擎,但 Runtime 包又是一个 msi 安装程序,这意味着我仍然遇到同样的问题。
有什么想法可以将引擎包含在我的应用安装程序中吗?
【问题讨论】:
找wininstall,google一下。 7.5版本允许这种“发现”方法,我不知道其他人。还有其他品牌可供选择。如果该应用程序是用于销售的,您应该接受一些时间准备一个防弹msi包,因为这是一个复杂的操作! 您在评论中指的是哪个软件?听起来你发现了一些简单直接的东西!谢谢你的回答。 【参考方案1】:你可能想看看这篇文章:Adding Programs to Access 2007 Deployment Packages
Access Developer Extensions 提供了一个基本但功能齐全的安装程序,可以处理一般部署方案。
【讨论】:
开发者扩展在这里没用,因为它们需要在机器上安装 Access 2007。我也找到了 Access 2007 的运行时,但它又是一个 msi 安装程序,这意味着我仍然遇到同样的问题。【参考方案2】:最好的办法是构建自己的 msi 包,包括所需的访问文件。您可以使用 VERITAS Wininstall 之类的产品。您有这种“发现”方法,允许您通过 (1) 拍摄系统的 2 个快照(安装前一个,安装后一个)然后 (2) 创建与安装相对应的 .msi 文件,从而构建一个完全可操作的 .msi 文件过程。
无论如何,我建议您拥有多个包,一个用于 Access,当计算机加入您公司的域时,可以使用“所有用户”选项安装这些包,一个用于您的应用程序。通过这样做,您将能够分发应用程序的新版本,而无需重新分发 Access,这会占用几兆空间以及几分钟用户最宝贵的时间)。
如果 Microsoft 已经提供了 Access Runtime msi 包,请保持“原样”并在新机器加入域时自动将其分发到您的网络上。
【讨论】:
我的场景中没有域。我正在制作要在市场上销售的产品,它是一个独立的 Winforms 应用程序。我需要这个应用程序的安装程序,使用你描述的方法似乎太过分了。我还是想要这个“发现”的东西,你有下载链接吗?【参考方案3】:我不会推荐 WinInstall,我们在我的办公室里有它,而且我们必须不断打电话给他们为我们打包东西,因为它使用起来非常难。有些东西他们根本无法打包。 WISE Studio 更好,或者免费的替代品是 AppDeploy ,我听说过很棒的事情。
【讨论】:
请检查您的链接,它正在被重定向到 ITNinja【参考方案4】:我发现了这个名为“Bootstrapper Manifest Generator”或 BMG 的软件。它帮助使用 MSI 或 EXE 安装程序文件创建一个先决条件包,并将其添加到安装和部署项目中的 VS2008 先决条件对话框中。虽然它不是那么用户友好,但它可以完成工作。它在 MSDN 上:code.msdn.microsoft.com/bmg
认为让别人免于遭受所有的麻烦是件好事。
【讨论】:
以上是关于Access 2007 Engine:如何将它包含在我的 .msi 安装程序中?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Access 2007 中使用 Visual Basic 代码更新单元格
将 Microsoft Office Access 数据库引擎 2007 包含到 InstallShield Limited Edition 的安装程序中