C# 在托管/嵌入式C中调试IronPython#

C# 在托管/嵌入式C中调试IronPython#,c#,visual-studio,ironpython,visual-studio-debugging,visual-studio-2019,C#,Visual Studio,Ironpython,Visual Studio Debugging,Visual Studio 2019,我正在开发asp.net核心应用程序+IronPython。 但我面临着调试问题 例如,我有以下代码: Dictionary<string, object> options = new Dictionary<string, object>(); options["Debug"] = true; ScriptEngine engine = Python.CreateEngine(options); // output redirect var eIO = engine.R

我正在开发asp.net核心应用程序+IronPython。 但我面临着调试问题

例如,我有以下代码:

Dictionary<string, object> options = new Dictionary<string, object>();
options["Debug"] = true;
ScriptEngine engine = Python.CreateEngine(options);

// output redirect
var eIO = engine.Runtime.IO;

var errors = new MemoryStream();
eIO.SetErrorOutput(errors, Encoding.Default);

var result = new MemoryStream();
eIO.SetOutput(result, Encoding.Default);

// execute script
ScriptScope scope = engine.CreateScope();
scope.SetVariable("testGlobalVar", 10);
engine.ExecuteFile(ScriptPath, scope);
它工作得很好,但我不知道如何在python文件中设置断点,并在Visual Studio、Pycharm(无论什么)中通过C#运行它时一步一步地调试它


我找到了,但几乎完全没用。我正在python文件中设置断点,但什么也没发生。

因为它在没有调试模式的情况下运行良好,正如您所提到的。我认为在调试模式下断点不会被命中的原因是调试器找不到它

Go=>Debug=>选项
=>取消选中
仅启用我的代码
以检查它是否有用

注:

  • 将.net核心应用程序设置为启动项目

  • 如果取消选中
    仅启用我的代码
    没有帮助,我建议您转到
    工具->导入/导出设置->重置所有设置
    ,然后再次取消选中
    仅启用我的代码

  • 之后,可以按如下方式命中断点:


    此外:我使用.net控制台应用程序进行复制和测试,但我认为它与web应用程序有类似的行为。任何更新请随时与我联系:)

    您使用的是哪个版本的VS?我正在使用Visual Studio 2019在您设置断点并选择开始调试(F5)后,会发生什么情况?请在解决方案资源管理器中检查您的python环境,以确保环境正常。断点仅适用于C#代码,对于python,它表示“当前不会命中断点。此文档未加载任何符号”@LanceLi MSFT您能发送屏幕截图吗?所有内容必须如何配置?这就是我所拥有的你在调试模式下开始调试吗?如果创建一个新的IronPython项目,添加断点并调试它,结果会怎样?它能成功吗?很高兴知道我的答案有帮助:)祝你有愉快的一天!