【发布时间】:2016-06-13 21:27:00
【问题描述】:
我正在使用Roslyn 动态编译任意*.cs 文件。我能够生成DLLs 和PDBs 并通过反射在加载的程序集中执行方法,但是当从System.Diagnostics.Debugger.Launch() 附加VS 调试器时,我收到“源不可用”错误。 VS 中的“模块”窗口显示符号已成功加载。有问题的源代码存在于同一解决方案下的项目中,但直到运行时才编译。
有人成功完成这项工作吗?谢谢!
复制:https://gist.github.com/toraora/a9d4eb8679383fe659da04d3be5c2d6e(等我在这台机器上设置好SSH密钥后,我会提出实际的解决方案)
【问题讨论】:
-
您介意发布一个最小示例来重现该问题吗?当然,我可以自己写,但我很懒 :-)
-
转载发布!
-
问题很容易发现:
srcfile的唯一用途是在File.ReadAllText中。由于您没有向 Roslyn 提供任何知道源文件是什么的方法,因此 Roslyn 无法生成允许找到该源文件的调试信息。不过,对于不太熟悉 Roslyn 的 API 的人来说,解决方案并不是那么明显。