调试动态加载程序集

7 .net vb.net assemblies dynamic

我正在调试一个用Assembly.Load(Byte [])动态加载的程序集,但是我遇到了一些问题.

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

Dim data = My.Computer.FileSystem.ReadAllBytes(file.FullName)
Assembly.Load(data)
Run Code Online (Sandbox Code Playgroud)

使用Assembly.Load(String)时,一切正常,没有问题.

Assembly.Load(IO.Path.GetFileNameWithoutExtension(file.Name))
Run Code Online (Sandbox Code Playgroud)

知道为什么这种行为会有很大不同吗?有任何解决这个问题的方法吗?

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

lad*_*dge 13

程序集的调试符号未加载到应用程序域中.当您使用字符串变种时,.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)
Run Code Online (Sandbox Code Playgroud)