Asp.net core 在运行时加载nuget包及其程序集

Asp.net core 在运行时加载nuget包及其程序集,asp.net-core,Asp.net Core,我正在使用asp.NET5开发一个CMF系统。我认为我应该使用nuget软件包实现插件系统,因为dnx原则是“nuget all things” 如何在运行时搜索、下载和解包包 以及如何在运行时从包中加载dll 你可以直接使用进程来使用nuget.exe。开始下载nuget软件包并安装它们。然后,您可以使用Assembly.LoadFrom从那些已安装的包中加载程序集。目前,动态加载NuGet包的方法并不简单。实际上,甚至不建议使用它,因为某些功能(如服务)无法正常工作 您必须采用旧的方法:使用

我正在使用asp.NET5开发一个CMF系统。我认为我应该使用nuget软件包实现插件系统,因为dnx原则是“nuget all things”

  • 如何在运行时搜索、下载和解包包
  • 以及如何在运行时从包中加载dll

  • 你可以直接使用进程来使用nuget.exe。开始下载nuget软件包并安装它们。然后,您可以使用Assembly.LoadFrom从那些已安装的包中加载程序集。

    目前,动态加载NuGet包的方法并不简单。实际上,甚至不建议使用它,因为某些功能(如服务)无法正常工作


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

    这看起来像是旧式的方法。新的asp.net-5有Microsoft.Framework.Runtime.*Microsoft.Framework.PackageManager.*和Microsoft.Framework.PackageManager.Restore.NuGet.*我认为我们应该使用这些工具来处理NuGet软件包。好的,这很清楚,谢谢。然后我想问一下未来。我的场景是多租户应用程序,其中每个租户都应该在专用文件夹中拥有自己的包集。例如,应用程序有两个租户。每个租户的管理员可以查找、加载和激活一些基于nuget的插件。系统必须下载所需的包,解析依赖项(并下载解析依赖项的附加包),将包解压缩到租户文件夹中,然后系统可以按Assembly.LoadFrom加载程序集。(不重新加载应用程序)…但这看起来像Microsoft.Framework.PackageManager的功能。我认为从包中加载程序集的合适类是NuGetAssemblyLoader。为开发人员提供PackageManager API的计划是什么(何时)?也许这会帮助您: