我正在开发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文件中
some = "Test"
print(Test)
print("We have ->", testGlobalVar)
它工作正常,但我不知道如何在python文件中设置断点并在Visual Studio,Pycharm(无论如何)中通过C#运行它时逐步调试它。
我找到了this question,但它几乎完全没用。我在python文件中设置断点,没有任何反应。
如上所述,它没有调试模式就可以正常工作。我认为为什么在调试模式下不会遇到断点的原因是调试器无法找到它。
请Go=>Debug=>Options
=>取消选中Enable Just My Code
以检查是否有帮助。
注意:
Enable Just My Code
没有帮助,我建议你去tools->Import/Export Settings->reset all settings
,然后再取消选中Enable Just My Code
。之后,断点可以如下所示:
另外:我使用.net控制台应用程序来重现和测试,但我认为它有类似web-app的行为。任何更新随时与我联系:)