首页 文章

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

提问于
浏览
18

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

我基本上拥有自己的.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解决方案之外的项目上运行时才会发生这种情况,我该怎样做才能让它在任何地方都可以运行?

1 回答

  • 28

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

相关问题