dotnet core 直接引用dll
dotnet core 只支持引用项目和nuget中的dll,外部dll虽然也可以引用进项目,并且可以被vs识别,而且编译后也可以在bin文件夹下看到对应的dll。
但是,运行时并不会加载这些外部dll,因此在运行时就会收到找不到dll文件的异常。
在 github 上的 issue 中,曾经看到有一个人说这个问题在 dotnet core 2.0 会修复,,,然而并没有
因此需要在代码中去主动加载
Assembly entry = Assembly.GetEntryAssembly();
string dir = Path.GetDirectoryName(entry.Location);
var filePath = Path.Combine(dir, "xxx.dll");
AssemblyLoadContext.Default.LoadFromAssemblyPath(filePath);
以上。