1

我在 .Net 4.7.2 中使用带有嵌入式调试信息的程序集。如果从文件系统加载程序集,则异常堆栈跟踪包含行号。但是,如果我动态加载(通过 AppDomain.Load (byte[]))带有嵌入式调试信息的程序集,则异常堆栈跟踪不包含此程序集的行号。

有没有办法强制 .Net Framework 使用来自动态加载的程序集的嵌入式调试信息?

注意:我知道如果调试信息位于单独的 PDB 文件中,则可以将其与程序集本身一起加载(通过 AppDomain.Load (byte[], byte[]))。问题是关于嵌入式调试信息。

4

1 回答 1

0

此处描述了非常相似的问题。VS 2019 解决了那里描述的问题。但是 VS 2019 并没有解决我的问题。

似乎没有实现使用来自动态加载的程序集的嵌入式调试信息来显示异常堆栈跟踪中的行号。

更新到 .Net 4.8 和安装 VS 2019 都没有帮助。

最终,我使用可移植调试信息重新编译了所有程序集,并使用AppDomain.Load(byte[], byte[])而不是AppDomain.Load(byte[]).

于 2019-10-16T15:37:09.300 回答