2

通过加载程序集后,Assembly.Load(byte[] rawAssembly, byte[] rawSymbolStore)是否可以从创建的程序集实例中检索 rawSymbolStore 数据?呼叫被转发到这个方法,我看不到它做了什么..

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

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

4

1 回答 1

1

是否可以从创建的 Assembly 实例中检索 rawSymbolStore 数据?

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

您必须使用 File.ReadAllBytes() 之类的调用来获取所需的字节 []。Assembly.Location 属性应该有助于定位程序集的 .pdb 文件。如果您不部署它,或者 ReadAllBytes 失败,则为第二个参数传递 null。

于 2013-01-30T08:02:25.140 回答