在运行时加载 nuget 包及其程序集

Load nuget package and its assembly in runtime

我正在开发一个 CMF 系统,使用 asp.net 5. 我认为我应该使用 nuget 包实现插件系统,因为 dnx 原则 "NuGet all the things".

  1. 如何在运行时搜索、下载、解压包?
  2. 以及如何在运行时从包中加载 dll?

那么你可以使用 nuget.exe 直接使用 Process.Start 下载 nuget 包并安装它们。然后您可以使用 Assembly.LoadFrom.

从那些已安装的包中加载程序集

目前,没有简单的方法来动态加载 NuGet 包。实际上,甚至不推荐这样做,因为某些功能(如服务)将无法正常工作。

您必须采用旧方法:使用反射加载 DLL。如果它们来自 nupkg 那么你必须自己提取它并解决依赖关系。