ASP .NET CORE 找不到包含自定义程序集的文件或程序集
ASP .NET CORE could not find file or assembly with custom assembly
我 运行 遇到了一个奇怪的问题。
我基本上有自己的 .NET 核心网络堆栈,我已经将其内置到一些 .dll 中,我想从另一个 ASP 核心解决方案中引用它们。
VS 似乎找到了程序集,我可以在其中导航类型等。
我也可以毫无问题地构建项目,但是当 IIS 然后运行服务器时,我收到一个内部服务器错误:
FileNotFoundException: Could not load file or assembly 'myDLL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
引用的DLL在调试文件夹中,真正奇怪的是,如果我在与web-stack相同的解决方案中创建一个新的ASP核心项目,我可以引用和使用它没有任何问题。
为什么仅当 运行 项目 在 网络堆栈解决方案之外时才会发生这种情况,我该怎么做才能让它在任何地方都可以运行?
VS 2017 中的 .NET Core 工具(< 15.3 预览版)/ .NET CLI < 2.0 不完全支持引用磁盘上的程序集。您需要将库打包为 NuGet 包或使用项目引用 ("same solution")。技术原因是所有需要的程序集和版本在编译期间被解析并写入 .deps.json
文件。加载任意程序集时,这可能会失败,因为找不到程序集或其依赖项(或相互冲突)。
要在 core
项目中加载 external dll
,需要:
- 与 2017 版本 15.3 或更高版本相比。
Microsoft.Extensions.DependencyModel
NuGet 包安装在您的项目中。
我 运行 遇到了一个奇怪的问题。
我基本上有自己的 .NET 核心网络堆栈,我已经将其内置到一些 .dll 中,我想从另一个 ASP 核心解决方案中引用它们。
VS 似乎找到了程序集,我可以在其中导航类型等。 我也可以毫无问题地构建项目,但是当 IIS 然后运行服务器时,我收到一个内部服务器错误:
FileNotFoundException: Could not load file or assembly 'myDLL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
引用的DLL在调试文件夹中,真正奇怪的是,如果我在与web-stack相同的解决方案中创建一个新的ASP核心项目,我可以引用和使用它没有任何问题。
为什么仅当 运行 项目 在 网络堆栈解决方案之外时才会发生这种情况,我该怎么做才能让它在任何地方都可以运行?
VS 2017 中的 .NET Core 工具(< 15.3 预览版)/ .NET CLI < 2.0 不完全支持引用磁盘上的程序集。您需要将库打包为 NuGet 包或使用项目引用 ("same solution")。技术原因是所有需要的程序集和版本在编译期间被解析并写入 .deps.json
文件。加载任意程序集时,这可能会失败,因为找不到程序集或其依赖项(或相互冲突)。
要在 core
项目中加载 external dll
,需要:
- 与 2017 版本 15.3 或更高版本相比。
Microsoft.Extensions.DependencyModel
NuGet 包安装在您的项目中。