我遇到了一个奇怪的问题。
我基本上有我自己的.NET核心的网络栈,我已经构建了一些.dlls,我想从另一个ASP核心解决方案中引用这些内容。
VS似乎找到了程序集,在其中我可以导航类型等。我也可以构建项目,没有任何问题,但是当IIS运行服务器时,我会得到一个内部服务器错误声明:
FileNotFoundException:无法加载文件或程序集'myDLL,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null‘。系统找不到指定的文件。
引用的DLL位于调试文件夹中,真正奇怪的是,如果我在与web堆栈相同的解决方案中创建一个新的ASP Core项目,我可以引用并使用它,而不会出现任何问题。
为什么只有在web堆栈解决方案之外的项目上运行时才会发生这种情况,我能做些什么使它在任何地方都能运行呢?
发布于 2017-05-14 17:23:42
VS 2017中的.NET核心工具(< 15.3预览)/ .NET CLI < 2.0并不完全支持在磁盘上引用程序集。您需要将库打包为NuGet包或使用项目引用(“相同的解决方案”)。技术原因是,所有必需的程序集和版本都在编译期间得到解析,并写入.deps.json
文件。加载任意程序集时,这可能会失败,因为无法找到程序集或其依赖项(或相互冲突)。
发布于 2019-07-01 03:36:12
要在external dll
项目中加载core
,需要:
Microsoft.Extensions.DependencyModel
NuGet包。https://stackoverflow.com/questions/43966687
复制相似问题