Visual studio 从MSTest调试到COM 尝试用MSTestVisualVisual Studio 2008调试C++编写的COM DLL。所有项目都在同一个解决方案中。3个项目:C++ COM DLL、VB.NET WiFraseApp、C MSTestProject。

Visual studio 从MSTest调试到COM 尝试用MSTestVisualVisual Studio 2008调试C++编写的COM DLL。所有项目都在同一个解决方案中。3个项目:C++ COM DLL、VB.NET WiFraseApp、C MSTestProject。,visual-studio,debugging,com,mstest,Visual Studio,Debugging,Com,Mstest,如果我运行VB.NET窗体应用程序,我可以成功地中断并进入COM dll。在C++中设置的断点正确工作。 当尝试使用MSTest调试会话中断并进入时会出现问题。我可以破解C测试代码。但是,在mstest中,我无法进入COM dll。在C++中设置的断点也永远不会被击中。在“项目调试属性”中选中“调试到非托管代码”复选框 迄今为止: 禁用测试部署:无效 在VB.NET窗体应用程序中添加了单元测试。当你把它当作一个 单元测试,它既不会中断也不会介入其中,因此它不是一个 项目或参考的差异。 已尝试从C

如果我运行VB.NET窗体应用程序,我可以成功地中断并进入COM dll。在C++中设置的断点正确工作。 当尝试使用MSTest调试会话中断并进入时会出现问题。我可以破解C测试代码。但是,在mstest中,我无法进入COM dll。在C++中设置的断点也永远不会被击中。在“项目调试属性”中选中“调试到非托管代码”复选框

迄今为止:

禁用测试部署:无效 在VB.NET窗体应用程序中添加了单元测试。当你把它当作一个 单元测试,它既不会中断也不会介入其中,因此它不是一个 项目或参考的差异。 已尝试从COM DLL连接到vstesthost进程 属性,但出现错误:无法附加。一次尝试失败了 用于在初始化时执行初始化操作 已经完成。
是否有人在MSTest中遇到过此问题?任何帮助都将不胜感激

> P>我现在可以通过MSTestt调试到C++ COM代码中。这似乎是用于运行测试的按钮的问题。我一直发现,当在工具栏或菜单中使用当前上下文按钮中的调试测试运行测试时,我不能调试到C++ COM代码中。然而,一旦测试出现在测试结果窗口中,我使用测试结果窗口的工具栏中的“调试检查”按钮运行,我就能够成功地调试到C++ COM代码……/P>

我不知道为什么会这样,但是我在做这件事时修改和改变的唯一一个问题就是解决方案平台,但是上面的陈述在.NET和混合平台模式中都成立。

< p>我现在可以通过MSTestt调试到C++ COM代码中。这似乎是用于运行测试的按钮的问题。我一直发现,当在工具栏或菜单中使用当前上下文按钮中的调试测试运行测试时,我不能调试到C++ COM代码中。然而,一旦测试出现在测试结果窗口中,我使用测试结果窗口的工具栏中的“调试检查”按钮运行,我就能够成功地调试到C++ COM代码……/P>
我不知道这是为什么,但在执行此操作时,我唯一修改和更改的是解决方案平台,但上述语句在.NET和混合平台模式下都适用。

您不能从托管代码逐步转换为非托管代码。请确保使用Project+属性、“调试”选项卡启用非托管调试,并在COM代码中设置断点。我已经在MSTest项目中启用了非托管调试,但在MSC测试下调试时仍无法在COM代码中捕获断点。但是,当在该项目中启用非托管调试时,我实际上可以从VB.NET WinForms测试应用程序中单步进入COM代码…如果我可以在COM代码中捕获断点,而不是单步进入,那也可以。目前还不清楚是什么导致了您的问题。但是反过来,调试你的C++项目。设置调试器以启动mstest.exe再次感谢您的响应。我已经尝试过用MSTST.EXE和VSTEStho.EXE启动我的C++程序,但它只是启动,然后再次停止……不知道该怎么做。一个有用的注意事项:我刚刚把解决方案移植到Visual Studio 2010,而在通过MSTestt调试时,COM代码中的断点现在被捕获。也许这在2008年是不可能的…如果你有任何建议,请让我知道。希望我们能尽快将所有内容切换到2010年:您不能从托管代码切换到非托管代码。请确保使用Project+属性、“调试”选项卡启用非托管调试,并在COM代码中设置断点。我已经在MSTest项目中启用了非托管调试,但在MSC测试下调试时仍无法在COM代码中捕获断点。但是,当在该项目中启用非托管调试时,我实际上可以从VB.NET WinForms测试应用程序中单步进入COM代码…如果我可以在COM代码中捕获断点,而不是单步进入,那也可以。目前还不清楚是什么导致了您的问题。但是反过来,调试你的C++项目。设置调试器以启动mstest.exe再次感谢您的响应。我已经尝试过用MSTST.EXE和VSTEStho.EXE启动我的C++程序,但它只是启动,然后再次停止……不知道该怎么做。一个有用的注意事项:我刚刚把解决方案移植到Visual Studio 2010,而在通过MSTestt调试时,COM代码中的断点现在被捕获。也许这是 2008年不可能……如果你有任何建议,请告诉我。希望我们能尽快将一切切换到2010年: