ASP .NET CORE无法使用自定义程序集查找文件或程序集

Tok*_*ans 21 c# .net-assembly .net-core asp.net-core

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

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

VS似乎找到了程序集,我可以在其中导航类型等.我也可以构建项目没有任何问题,但当IIS然后运行服务器时,我得到一个内部服务器错误说明:

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

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

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

Mar*_*ich 33

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

  • 就是这样.我在project-properties - > package下的build*-box上勾选了*Generate NuGet包,并将包本地安装到我的新web项目中. (10认同)
  • 在v15.4.0中获得相同的问题 (2认同)