Docker for Windows& MS-Access数据库& Jet.OLEDB.4.0

时间:2018-05-15 10:01:21

标签: c# docker ms-access oledb

我需要设置一个docker容器,其中遗留应用程序需要连接到MS-Access 2003数据库。 DB的连接字符串嵌入在应用程序本身中,因此无法更改。所以我无法将提供者更改为ACE.OleDb

我已根据...

创建了docker图像
  • 微软/ dotnet的框架
  • 微软/ windowsservercore
  • 微软/ MSSQL-服务器 - 窗口明示

...但是在容器上运行遗留应用程序时,我总是得到相同的结果。

  

Microsoft.Jet.OLEDB.4.0'提供程序未在本地计算机上注册。

我还尝试在容器中使用以下命令在SysWow64中注册msjetoledb40.dll ...

  

C:\ Windows \ SysWow64 \ regsvr32 Msjetoledb40.dll

......但似乎也没有用。

我还在32位和64位(AccessDatabaseEngine.exe& AccessDatabaseEngine_X64.exe)中安装了Microsoft Access数据库引擎可再发行组件(2007,2010& 2016),但总是得到与上述相同的错误。

2007 Office System Driver: Data Connectivity Components

Microsoft Access Database Engine 2010 Redistributable

Microsoft Access Database Engine 2016 Redistributable

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

解决:

我找到了一个' Jet 4.0 Service Pack 8 (SP8) for Windows 95/98/NT 4.0 (KB829558)'封装

Jet40SP8_9xNT.exe 复制到容器中,并将此语句添加到 dockerfile

RUN Jet40SP8_9xNT.exe /Q