0

SSIS 世界的新手,我之前在 Excel 2016 版和 2007-2010 版[经过多年的故障排除]但后来它停止工作[对我读过的各种解决方案进行无休止的测试,似乎是一个反复出现的问题]现在它仍然无法正常工作....任何帮助将不胜感激。

情况如下: 通过 VS19 将 Excel 导入 SSIS 环境。当我尝试在 Excel 源代码编辑器中查看表格时,出现以下错误消息:

无法检索连接管理器“Excel 连接管理器”的表信息。无法使用连接管理器“Excel 连接管理器”连接到源。

  • 使用 Visual Studio 社区 2019 - 16.6.30128.74
  • 在 Windows 10 上使用 Microsoft Suite for Microsoft 365 中的 32 位 Excel - 16.0.11929.20776
  • 在 Visual Studio 安装程序中,我激活了“数据存储和处理”磁贴,并勾选了“SQL Server 数据工具”
  • 我在 32 位模式下运行包

    Project properties >> Debugging >> Run64BitRuntime = False

  • 我已经在我的计算机上安装了 2010 和 2016 的 32 位和 64 位 AcccessDatabaseEngine - x64 2010 可再发行 - 14.0.7015.1000 - x32 2010 可再发行 - 14.0.7015.1000 - x64 2016 可再发行 - 16.0.4519.1000 - x 16.019.1000 - x 4519.1000

  • 甚至完成了被动/安静模型安装步骤

    1. cmd通过在开始菜单下的 Windows 搜索框中键入并选择来打开命令提示符cmd.exe
    2. 键入 [relevant] 安装文件的文件路径和文件名,后跟一个空格和/passive/quiet [if passive didn't work]
    3. regedit通过在“开始”菜单下的 Windows 搜索框中键入并选择来打开注册表编辑器regedit.exe
    4. 删除了以下注册表项中的 mso.dll 注册表值:

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths"

[高于 2010 年][低于 2016 年]

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.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 注册工作簿中的表。我究竟做错了什么?我错过了什么吗?它以前可以工作,现在它本身就是 C#$%。

有人可以建议另一种解决方案,说明为什么我不能使用我的 excel 2010、2013 或 2016 版本将我的 Excel 源导入到我在 VS19 中的 SSIS 环境中。谢谢你。

4

2 回答 2

0

据我所见,安装 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 的服务器,然后使用希望与祈祷的方法. 您将大部分时间盲目工作,但您应该能够获得一些结果。

于 2022-01-14T16:38:09.940 回答
0

所以,我基本上不得不从头开始。擦拭我的笔记本电脑并重新安装所有内容。SSMS,VS 所有的附加组件,一切。现在它工作得很好,所以我认为要么是我下载东西的顺序,要么是我的笔记本电脑中已经存在的东西正在阻止应用程序正常工作。天哪,那真是一场噩梦。但是我的问题现在已经解决了。

于 2020-06-27T01:18:19.640 回答