我的应用程序在运行时从特定子文件夹动态加载程序集.这些程序集编译时依赖于其他程序集.运行时尝试从应用程序目录加载这些内容.但我想将它们放入模块目录中.
有没有办法告诉运行时dll在一个单独的子文件夹中?
我有一个.net核心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();
Run Code Online (Sandbox Code Playgroud)
当我通过代码进行调试时,它会MyType.Execute()按预期进行调试.
但是,如果我使用以下代码加载程序集:
var path = new FileInfo(Assembly.GetExecutingAssembly().Location);
var a = Assembly.LoadFile(Path.Combine(path.DirectoryName, "MyAssembly.dll"));
Run Code Online (Sandbox Code Playgroud)
代码仍然有效但我无法MyType.Execute()在调试时介入.
任何想法为什么/什么是错的?