【问题标题】:visual studio (SSDT) 2017 unable to start debuggingvisual studio (SSDT) 2017 无法开始调试
【发布时间】:2018-06-10 04:53:28
【问题描述】:

我最近从 SSDT 包安装了 Visual Studio 2017。我正在测试一个简单的场景,一个平面文件源和一个不涉及 C# 或 VB 脚本的 OLEDB 目标,代码中也没有调试断点。 当我尝试为 SSIS 项目执行包时,出现错误:

微软视觉工作室 无法开始调试。调试器未正确安装。跑 setup 以安装或修复调试器。

------------------ 附加信息:

无法运行程序“DTS”。

名为 coloader80.dll 的 Visual Studio 程序的 DLL 库未正确安装。使用小程序添加或删除修复 Visual Studio 安装 控制面板中的程序。

如果问题仍然存在,您可以从命令行手动注册 coloader80.dll 库,使用指令“regsvr32 "%CommonProgramFiles%\Microsoft Shared\VS7Debug\coloader80.dll"”。 (Microsoft Visual Studio 调试器)

我尝试将解决方案用于类似问题: https://developercommunity.visualstudio.com/content/problem/26630/the-debugger-is-not-properly-installed-cannot-debu.html

我删除了 C:/Program files/Common Files/Microsoft shared/VS7Debug 文件夹的内容并重新安装了 VS,但在我的情况下似乎不起作用。

任何其他想法将不胜感激。

【问题讨论】:

  • 需要更多细节。您是否正在尝试调试 C# 脚本任务/组件?您是在编译时收到此信息,还是在执行期间在错误日志中收到此信息?你的断点是什么,你想做什么?存在调试器无法启动的已知问题(请参阅我的回答)。
  • 感谢@JWeezy 的输入,我已经提供了更多信息。
  • 严峻。我会选择卸载并重新安装 SSDT / VSTA / 和 Visual Studio。
  • 我已经试过了

标签: visual-studio ssis sql-server-data-tools


【解决方案1】:

我在这里暗中尝试,因为您的问题缺乏细节。但是,我对产生错误所采取的步骤的最佳猜测如下:

  1. 您正在使用 C# 脚本任务(控制流)或 C# 脚本组件(数据流,其中有一个断点
  2. 您可以成功编译并执行该包
  3. 作业一直运行,直到它到达其中有断点的 C# 组件,然后就坐在那里连续运行,没有任何进展或失败
  4. VSTA 调试器未启动
  5. 您提供的错误消息显示在“执行结果”选项卡(即日志)中

如果是这种情况,那么我相信您在 VSTA 调试器中遇到了一个错误,它无法启动,因为您在代码中执行了它不喜欢的操作 - 这当然对 Microsoft 没有帮助。此外,这意味着您的 Visual Studio、SSDT 或 VSTA 安装不太可能有任何问题。更有可能是您的代码中存在 VSTA 调试器不喜欢的内容,这会导致它无法启动,同时还会引发误导性错误消息。

要确认这一点,您需要注释掉您的代码部分并运行该程序包,以找出阻止调试器启动的代码。调试器启动后,您已经隔离了调试器无法运行的代码部分。

如果未注释的代码部分是问题所在(即,创建了无法调试的错误结果),请尝试寻找解决方法。否则,如果您知道未注释的代码部分可以正常工作,则将其注释掉(或者如果错误代码的其他部分依赖于它,则插入它正在执行的任何操作的值)并继续调试您的其他部分代码。

阻止调试器启动的已知调试器问题:

  1. 正在使用字符串插值。

解决方法:使用string.format("String text here with variable param here {0} and here {1}", param1, param2);

  1. TryGetValue 正在字典上使用,以在检索值之前查看该值是否存在。

解决方法:据我所知没有。请参阅我在此问题上的问题:

SSIS VSTA: Why does Script Component debugger not work when using TryGetValue on a dictionary?

如果您的问题不属于上述任何一种,那么我想知道您发现了什么新问题,以及您创建了哪些解决方法,因为这对我很有帮助(我在SSIS/C#)。如果您遇到任何问题,我可以协助您制定解决方法。

注意:如果注释掉所有代码仍然会阻止调试器工作,请尝试添加一个新的 C# 组件,它可以做一些简单的事情,例如显示一个消息框或设置一个变量值(即int intValue = 1;)。如果这仍然不起作用,那么您可能需要考虑重新安装 VSTA 和 SSDT。希望您不必采取这一步。

【讨论】:

  • 感谢您的指点。即使使用 DateTime.TryParse 也无法启动调试器。
  • @smile.al.d.way 谢谢你的分享。
【解决方案2】:

我建议尝试重新安装。注意:使用安装程序卸载并重新安装不会删除所有内容,这可能会导致问题持续存在。请参阅下文了解如何删除所有内容,其中包括您必须采取的手动步骤。

升级 SSDT 本身就是一个挑战,因为 Microsoft 在 SSDT 下载页面上指出,首先卸载 SSDT 然后重新安装 SSDT 很重要。但是,当运行 SSDT 的卸载程序时,它会警告用户并非所有组件都将被卸载,因为它会使计算机处于不受支持的状态,并且需要在控制面板中手动删除这些组件(即,在程序和功能下) )。这里的问题是微软没有指定需要卸载哪些组件。我不得不联系我们的 Microsoft Premier Support 技术人员,他们能够提供要卸载的组件列表(请参阅下面的网络链接图片)。

注意:在某些情况下,此列表就足够了。但是,如果您有其他 Microsoft Visual C++ 20nn Redistributable (x86/x64) 组件,则可能还需要卸载这些组件。否则,SSDT 安装程序可能会崩溃。挖掘安装程序错误日志会指出这一点。

https://1drv.ms/i/s!ArgNRGQ-3kB-dg3-igZcamMEpAk

【讨论】:

    【解决方案3】:

    我尝试了相同的解决方案,但没有结果。

    今天我用这个解决方案解决了:

    https://stackoverflow.com/questions/37299032/visual-studio-2015-the-hash-value-is-not-correct​

    > 1. Download: https://go.microsoft.com/fwlink/?LinkId=866452
    > 2. SSDT-Setup-ENU.exe /layout <folder name>
    > 3. Download: https://aka.ms/vs/15/release/vs_sql.exe
    > 4. vs_SQL.exe --layout <different folder name> (this takes a while, it's laying out ~4 GB)
    > 5. <different folder name>\vs_setup.exe --wait --nickname "SSDT" --passive
    > 6. <folder name>\SSDT-Setup-ENU.exe
    

    【讨论】:

      猜你喜欢
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多