0

我有一个 Windows 窗体应用程序。它从 MS Access 数据库中读取数据。我确实在我的系统中安装了 MS Access 数据库引擎 (AccessDatabaseEngine_X64.exe)。它运作良好。由于任何人都可以在内部使用此应用程序,因此在开始使用该应用程序之前,他们必须经历安装驱动程序的麻烦。为了克服这个问题,我在 VS 2017 中使用 Visual Studio“安装项目”为我的项目创建了安装程序。我在自定义操作下添加了 AccessDatabaseEngine_X64.exe 作为先决条件。它未能这样做,因为在运行安装程序时它会启动另一个安装程序并弹出一个错误,说明另一个安装程序实例正在运行。请关闭它以继续。如何将其嵌入到我的安装程序中?使用户无需手动安装Access引擎即可使用该应用程序。

4

2 回答 2

0

像这样的大多数项目都是由 setup.exe 作为先决条件安装的,如果您在项目属性中执行此操作,安装项目将构建该安装程序。造成这种情况的原因有很多,主要原因是您无法从 MSI 设置中安装 MSI 设置。

您的先决条件不在标准的先决条件列表中,因此您需要创建自己的引导程序数据,从这里开始:

https://msdn.microsoft.com/en-us/library/ms165429.aspx

并创建产品和包装清单。这似乎是一个很好的起点:

http://itsyntax.blogspot.com/2013/11/access-database-engine-bootstrapper-for.html

于 2017-03-24T18:31:03.773 回答
0

您可以通过在安装项目中添加 Microsoft Access Database Engine 2010 作为先决条件来解决您的问题,以下链接向您展示了如何执行此操作,但请注意,如果您使用 VS2017 则路径不同,VS2017 的路径是:

“C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages”

不是

“C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages”

我还注意到,在某些情况下,您必须在用户的机器上安装“AccessDatabaseEngine.exe”而不是“AccessDatabaseEngine_X64.exe”,即使它是 64 位 Windows!

这篇文章包括一个视频,展示了如何逐步完成所有这些操作:

https://csharp-tutorials1.blogspot.com/2017/12/add-microsoft-access-engine-2010-as.html

此致

于 2019-08-15T15:40:09.970 回答