【发布时间】:2023-04-04 13:58:01
【问题描述】:
我有一个 .net core 2.0 控制台应用程序,它执行以下操作(简化):
var a = Assembly.Load(Assembly.GetEntryAssembly()
.GetReferencedAssemblies()
.First(i => i.Name == "MyAssembly"));
var t = a.GetType("MyType");
var i = (MyBaseType)Activator.CreateInstance(t);
i.Execute();
当我调试代码时,它会按预期进入MyType.Execute()。
但是,如果我使用以下代码加载程序集:
var path = new FileInfo(Assembly.GetExecutingAssembly().Location);
var a = Assembly.LoadFile(Path.Combine(path.DirectoryName, "MyAssembly.dll"));
代码仍然有效,但在调试时我无法进入MyType.Execute()。
知道为什么/出了什么问题吗?
【问题讨论】:
-
也许只是我的代码选项应该被禁用? blogs.msdn.microsoft.com/zainnab/2010/10/25/…
-
您需要确保 .pdb 文件与您正在加载的 dll 位于同一位置。然后,Visual Studio 将加载该数据并允许它在断点处停止。