Excel 连接管理器无法通过 SSIS VS19 连接
Excel Connection Manager Failed to Connect via SSIS VS19
SSIS 世界的新手,我之前在 Excel 版本 2016 和版本 2007-2010 [经过多年的故障排除后] 但后来就停止了工作 [对我读过的各种解决方案进行了无休止的测试,似乎是一个反复出现的问题],现在它仍然无法工作....任何帮助将不胜感激。
情况如下:
正在通过 VS19 导入 Excel 到 SSIS 环境。当我尝试在 Excel 源代码编辑器中查看 Table 时,出现以下错误消息:
无法检索连接管理器 'Excel Connection Manager' 的 table 信息。无法使用连接管理器连接到源 'Excel Connection Manager'。
- 使用 Visual Studio 社区 2019 - 16.6.30128.74
- 在 Windows 10 - 16.0.11929.20776
上使用 Microsoft Suite for Microsoft 365 的 32 位 Excel
- In Visual Studio Installer, I have activated the "Data storage and processing" tile with the "SQL Server Data Tools" ticked
I am running the package in 32-bit mode
Project properties >> Debugging >> Run64BitRuntime = False
我已经在我的电脑上安装了 2010 和 2016 的 AccessDatabaseEngine 32 位和 64 位
-- x64 2010 重新分发 table - 14.0.7015.1000
-- x32 2010 重新分配 table - 14.0.7015.1000
-- x64 2016 重新分发 table - 16.0.4519.1000
-- x32 2016 重新分配 table - 16.0.4519.1000
甚至完成了Passive/Quiet模型安装步骤
- 通过在“开始”菜单下的 Windows 搜索框中键入
cmd
并选择 cmd.exe
打开命令提示符
- 键入 [相关] 安装文件的文件路径和文件名,后跟 space 和
/passive
或 /quiet
[如果 passive 没有'不工作].
- 通过在“开始”菜单下的 Windows 搜索框中键入
regedit
并选择 regedit.exe
打开注册表编辑器
- 删除了以下注册表项中的 mso.dll 注册表值:
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office.0\Common\FilesPaths"
[2010 年以上] 和 [2016 年以下]
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office.0\Common\FilesPaths"
- 我已经尝试卸载并重新安装 SSDT
- 我已经尝试在 Excel 源代码编辑器中使用所有可用的 excel 版本选项 [2007-2010、2013、2016] 无济于事
我什至尝试过有人建议的 DelayValidation 方法[仍然没有用]
Project Task >> Properties >> DelayValidation = True
甚至在我的 Excel 连接管理器
上检查了我的连接字符串
Excel Connection Manager Connection >> Properties >> ConnectionString >> Provider=Microsoft.ACE.OLEDB.12.0
运行 修复我的 VS19 和 Office
- 确保我所有的 excel 文件都已关闭
当前解决方法:
我必须将所有 excel 文件保存为 .xls 版本并将配置更改为 97-2003,以便我的 SSIS 从工作簿注册 tables。我究竟做错了什么?我错过了什么吗?它以前是工作的,现在是 C#$% 本身。
有人可以建议另一种解决方案,为什么我不能使用我的 excel 2010、2013 或 2016 版本将我的 Excel 源导入 VS19 中的 SSIS 环境。谢谢。
所以,我基本上不得不从头开始。擦拭我的笔记本电脑并重新安装所有东西。 SSMS、VS 所有附加组件,应有尽有。现在它运行完美,所以我认为要么是我下载东西的顺序,要么是笔记本电脑中已有的东西阻止了应用程序正常工作。天哪,那真是一场噩梦。但是我的问题现在已经解决了。
据我所知,问题几乎是在安装 Office 365 后立即出现的。确认您使用的是 32 位 Office 365。我遇到的所有迹象表明,Office 365 是 64 位的,并且安装过程删除了 32 位早期版本的 Office 产品。这就是问题的开始。
安装 AccessDatabaseEngine 是一个垃圾场补丁,用于将 32 位 dll 放回您的系统,供 Visual Studio 在您 运行 处于 32 位模式时使用。它不完美,可能无法为您提供较新版本 Visual Studio 所需的所有必需的 32 位 dll,这就是结果可能不稳定的原因。
问题的核心其实是Visual Studio。开发环境EXE,即使是VS 2019,依然是32位的。因此,当您按 F5 进入 运行 您的应用程序时,Dev Env EXE 会强制所有 dll 使用 32 位版本。而且 Office 365 在安装时强行删除了 Excel 32 位 dll,这就是为什么那么多人打垃圾场补丁(上图)的原因。
如果有某种方法可以强制 VS 使用 64 位开发环境 EXE,那么所有这些问题都会消失。但在那之前,您必须将所有标志设置为使用 64 位(以便您可以读取最新的 Excel 文件),将您的代码部署到具有 64 位 dll 的服务器,然后使用 hope-和祈祷的方法。您将大部分时间都在盲目工作,但您应该能够得到一些结果。
SSIS 世界的新手,我之前在 Excel 版本 2016 和版本 2007-2010 [经过多年的故障排除后] 但后来就停止了工作 [对我读过的各种解决方案进行了无休止的测试,似乎是一个反复出现的问题],现在它仍然无法工作....任何帮助将不胜感激。
情况如下: 正在通过 VS19 导入 Excel 到 SSIS 环境。当我尝试在 Excel 源代码编辑器中查看 Table 时,出现以下错误消息:
无法检索连接管理器 'Excel Connection Manager' 的 table 信息。无法使用连接管理器连接到源 'Excel Connection Manager'。
- 使用 Visual Studio 社区 2019 - 16.6.30128.74
- 在 Windows 10 - 16.0.11929.20776 上使用 Microsoft Suite for Microsoft 365 的 32 位 Excel
- In Visual Studio Installer, I have activated the "Data storage and processing" tile with the "SQL Server Data Tools" ticked
I am running the package in 32-bit mode
Project properties >> Debugging >> Run64BitRuntime = False
我已经在我的电脑上安装了 2010 和 2016 的 AccessDatabaseEngine 32 位和 64 位 -- x64 2010 重新分发 table - 14.0.7015.1000 -- x32 2010 重新分配 table - 14.0.7015.1000 -- x64 2016 重新分发 table - 16.0.4519.1000 -- x32 2016 重新分配 table - 16.0.4519.1000
甚至完成了Passive/Quiet模型安装步骤
- 通过在“开始”菜单下的 Windows 搜索框中键入
cmd
并选择cmd.exe
打开命令提示符
- 键入 [相关] 安装文件的文件路径和文件名,后跟 space 和
/passive
或/quiet
[如果 passive 没有'不工作]. - 通过在“开始”菜单下的 Windows 搜索框中键入
regedit
并选择regedit.exe
打开注册表编辑器
- 删除了以下注册表项中的 mso.dll 注册表值:
- 通过在“开始”菜单下的 Windows 搜索框中键入
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office.0\Common\FilesPaths"
[2010 年以上] 和 [2016 年以下]
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office.0\Common\FilesPaths"
- 我已经尝试卸载并重新安装 SSDT
- 我已经尝试在 Excel 源代码编辑器中使用所有可用的 excel 版本选项 [2007-2010、2013、2016] 无济于事
我什至尝试过有人建议的 DelayValidation 方法[仍然没有用]
Project Task >> Properties >> DelayValidation = True
甚至在我的 Excel 连接管理器
上检查了我的连接字符串Excel Connection Manager Connection >> Properties >> ConnectionString >> Provider=Microsoft.ACE.OLEDB.12.0
运行 修复我的 VS19 和 Office
- 确保我所有的 excel 文件都已关闭
当前解决方法: 我必须将所有 excel 文件保存为 .xls 版本并将配置更改为 97-2003,以便我的 SSIS 从工作簿注册 tables。我究竟做错了什么?我错过了什么吗?它以前是工作的,现在是 C#$% 本身。
有人可以建议另一种解决方案,为什么我不能使用我的 excel 2010、2013 或 2016 版本将我的 Excel 源导入 VS19 中的 SSIS 环境。谢谢。
所以,我基本上不得不从头开始。擦拭我的笔记本电脑并重新安装所有东西。 SSMS、VS 所有附加组件,应有尽有。现在它运行完美,所以我认为要么是我下载东西的顺序,要么是笔记本电脑中已有的东西阻止了应用程序正常工作。天哪,那真是一场噩梦。但是我的问题现在已经解决了。
据我所知,问题几乎是在安装 Office 365 后立即出现的。确认您使用的是 32 位 Office 365。我遇到的所有迹象表明,Office 365 是 64 位的,并且安装过程删除了 32 位早期版本的 Office 产品。这就是问题的开始。
安装 AccessDatabaseEngine 是一个垃圾场补丁,用于将 32 位 dll 放回您的系统,供 Visual Studio 在您 运行 处于 32 位模式时使用。它不完美,可能无法为您提供较新版本 Visual Studio 所需的所有必需的 32 位 dll,这就是结果可能不稳定的原因。
问题的核心其实是Visual Studio。开发环境EXE,即使是VS 2019,依然是32位的。因此,当您按 F5 进入 运行 您的应用程序时,Dev Env EXE 会强制所有 dll 使用 32 位版本。而且 Office 365 在安装时强行删除了 Excel 32 位 dll,这就是为什么那么多人打垃圾场补丁(上图)的原因。
如果有某种方法可以强制 VS 使用 64 位开发环境 EXE,那么所有这些问题都会消失。但在那之前,您必须将所有标志设置为使用 64 位(以便您可以读取最新的 Excel 文件),将您的代码部署到具有 64 位 dll 的服务器,然后使用 hope-和祈祷的方法。您将大部分时间都在盲目工作,但您应该能够得到一些结果。