gpt4 book ai didi

.net - 调试动态加载的程序集

转载 作者:行者123 更新时间:2023-12-04 05:56:49 25 4
gpt4 key购买 nike

我正在调试我用 Assembly.Load(Byte[]) 动态加载的程序集,但我面临一些问题。

首先,我无法在 Visual Studio 2010 中移动黄色箭头以进入其他代码行,并且在尝试快速查看时出现异常(“找不到对象实例上的方法。”)来自第三方库的对象(例如来自 Infragistics 的控件。)

Dim data = My.Computer.FileSystem.ReadAllBytes(file.FullName)
Assembly.Load(data)

使用时 Assembly.Load(String) ,一切正常,没有任何问题。
Assembly.Load(IO.Path.GetFileNameWithoutExtension(file.Name))

知道为什么行为如此不同吗?有任何解决这个问题的方法吗?

我尝试使用 Assembly.Load(byte[].byte[]) 为我的程序集加载调试符号,但在尝试调试来自第三方库的对象时仍然出现异常。

最佳答案

程序集的调试符号未加载到应用程序域中。当您使用字符串变体时,.NET 会自动在您指定的文件名旁边查找 .PDB。

要从字节数组加载程序集及其符号,请使用 Assembly.Load(byte[], byte[]) ,像这样:

Dim data = My.Computer.FileSystem.ReadAllBytes(file.FullName)
Dim pdbData = My.Computer.FileSystem.ReadAllBytes(pdbFile.FullName)
Assembly.Load(data, pdbData)

关于.net - 调试动态加载的程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7836737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com