ASP .NET CORE无法使用自定义程序集

时间:2017-05-14 17:08:57

标签: c# asp.net-core .net-core .net-assembly

我遇到了一个奇怪的问题。

我基本上拥有自己的.NET-core web-stack,我已经将其构建到一些.dll中,我想从另一个ASP CORE解决方案中引用它们。

VS似乎找到了程序集,我可以在其中导航类型等。 我也可以毫无问题地构建项目,但是当IIS运行服务器时,我收到内部服务器错误说明:

  

FileNotFoundException:无法加载文件或程序集' myDLL ,版本= 1.0.0.0,Culture = neutral,PublicKeyToken = null'。系统找不到指定的文件。

引用的DLL位于debug-folder中,真正奇怪的是,如果我在与Web堆栈相同的解决方案中创建一个新的ASP Core项目,我可以毫无问题地引用和使用它。

为什么只有在外部 web-stack的解决方案上运行时才会发生这种情况,我该怎样做才能让它在任何地方都可以运行?

2 个答案:

答案 0 :(得分:29)

VS 2017中的.NET核心工具(< 15.3预览版)/ .NET CLI< 2.0不完全支持磁盘上的引用程序集。您需要将库打包为NuGet包或使用项目引用(“相同的解决方案”)。技术原因是在编译期间解析了所有必需的程序集和版本并将其写入.deps.json文件。加载任意程序集时,这可能会失败,因为无法找到程序集或其依赖项(或彼此冲突)。

答案 1 :(得分:0)

要在external dll项目中加载core,需要:

  1. vs 2017版本15.3或更高版本。
  2. Microsoft.Extensions.DependencyModel已在您的项目中安装了NuGet软件包。