visual studio(SSDT)2017无法启动调试

visual studio (SSDT) 2017 unable to start debugging

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

Microsoft Visual Studio Unable to start debugging. The debugger is not properly installed. Run setup to install or repair the debugger.

------------------------------ ADDITIONAL INFORMATION:

Unable to run program „DTS”.

DLL library of Visual Studio program named coloader80.dll is not properly installed. Repair the Visual Studio installation by using applet Add or Remove programs in Control panel.

If the problem persists you can manually register the coloader80.dll library >from command line, using instruction „regsvr32 "%CommonProgramFiles%\Microsoft Shared\VS7Debug\coloader80.dll"”. (Microsoft Visual Studio Debugger)

我尝试使用解决类似问题的方法: 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,但是没有似乎对我有用。

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

我在暗中摸索,因为你的问题不够详细。但是,我对产生错误所采取的步骤的最佳猜测如下:

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

如果是这种情况,那么我相信您 运行 遇到了 VSTA 调试器中的一个错误,它无法启动,因为您在代码中做了一些它不喜欢的事情 - 这对当然是微软。此外,这意味着您安装的 Visual Studio、SSDT 或 VSTA 不太可能有任何问题。更有可能的是,您的代码中有一些 VSTA 调试器不喜欢的东西,这导致它无法启动,同时还会抛出误导性的错误消息。

要确认这一点,您需要注释掉部分代码和 运行 包,以便找到阻止调试器启动的代码。一旦调试器启动,您就隔离了调试器无法 运行 的代码部分。

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

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

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

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

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

解决方法:None 据我所知。在以下位置查看我的问题:

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

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

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

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

升级 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

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

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

> 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