从程序集检索 PDB

本文关键字:PDB 检索 程序集 | 更新日期: 2023-09-27 17:56:32

通过Assembly.Load(byte[] rawAssembly, byte[] rawSymbolStore)加载程序集后,是否可以从创建的程序集实例中检索原始符号存储数据?调用被转发到此方法,我看不到它的作用。

[MethodImpl(MethodImplOptions.InternalCall)]
internal static RuntimeAssembly nLoadImage(byte[] rawAssembly, byte[] rawSymbolStore, Evidence evidence, ref StackCrawlMark stackMark, bool fIntrospection, SecurityContextSource securityContextSource);

我想做的是将程序集实例序列化为两个字节数组,并将它们发送到远程机器以加载到那里。

从程序集检索 PDB

是否可以从创建的程序集实例中检索原始符号存储数据?

不。 程序集的.pdb文件是磁盘上的单独文件。 它包含程序集的调试符号,您通常会在项目的生成目录中找到它。 可以将.pdb文件与.dll一起部署,但这是可选的。 它仅用于在异常堆栈跟踪中显示文件 + 行号信息。

您必须使用像 File.ReadAllBytes() 这样的调用来获取所需的 byte[]。 程序集.Location 属性应该有助于查找程序集的.pdb文件。 如果未部署它,或者 ReadAllBytes 失败,则为第二个参数传递 null。