【发布时间】:2017-04-15 23:15:05
【问题描述】:
使用 VS2017 RC、.NET Core
我正在尝试从文件加载程序集。 此程序集的依赖项位于同一文件夹中。
我正在使用AssemblyLoadContext.Default.LoadFromAssemblyPath。
我意识到LoadFromAssemblyPath 专门加载请求的程序集,忽略它的依赖关系;任何遍历程序集类型的尝试都会失败,并返回 System.Reflection.ReflectionTypeLoadException。
LoaderExceptions 包含System.IO.FileNotFoundException 的列表。
我很好奇为什么会这样,因为所有必需的文件都在同一个文件夹中。
我还尝试将所有 *.dll 文件加载到一个文件夹中,但有些意外地以 System.IO.FileLoadException 失败。
我做错了什么?
编辑:我不想依赖 .deps 文件(因此排除了 DependencyContext)。有可能吗?
【问题讨论】:
-
我不习惯这种操作,但你有没有试过打电话给
Assembly.LoadFrom()? -
@Phate01 .NET Core 中没有
Assembly.LoadFrom。 -
我认为您应该通过指定要加载的程序集的名称(全名或短名)从 GAC 加载程序集。但这只是猜测。
-
已编辑。我不想使用 DependencyContext,因为它需要一个 .deps.json 文件和一个特定的项目配置。在我看来,这太容易错过了。
标签: c# reflection .net-core