如何在自定义dotnet全局工具中加载依赖程序集?

时间:2019-07-27 20:21:12

标签: c# asp.net-core

我创建了一个类似EF工具的.Net全局工具,万事大吉,成功构建了目标项目,并且可以加载目标程序集。但是加载目标程序集后无法解决其依赖性。 目标项目是Asp.Net mvc核心项目,我知道使用AssemblyResolve事件从自定义位置进行负载装配,但我不知道正确的位置。调试目录中没有任何dll。

这是我现在可以使用的代码:

AppDomain.CurrentDomain.AssemblyResolve += ResolveAssembly;
private Assembly ResolveAssembly(object sender, ResolveEventArgs args)
{
    var assemblyName = new AssemblyName(args.Name);
        foreach (var extension in new[] { ".dll", ".exe" })
        {
            var path = Path.Combine(AppBasePath, assemblyName.Name + extension);
            if (File.Exists(path))
            {
                try
                {
                    return Assembly.LoadFrom(path);
                }
                catch
                {
                }
            }
        }
        return null;        
}

0 个答案:

没有答案