gpt4 book ai didi

c# - 在 .NET Core 应用程序中引用 DLL 时出现 FileNotFoundException

转载 作者:行者123 更新时间:2023-11-30 13:54:18 26 4
gpt4 key购买 nike

我有一个 .NET Core 控制台应用程序和一个 .NET Core 类库。两者都是非常简单的单类项目。两者都是全新构建的,全新安装了最新的 .NET Core。两者都以 .NET Core 1.1 为目标。

只要我在应用程序中包含 .NET Core 类库,就会在运行时发生此错误:

System.IO.FileNotFoundException: 'Could not load file or assembly 'NAME, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

构建任一项目都很好,Intellisense 在包含 using... 语句后向我显示了类库的内容。引用和编写的代码在编译时没有问题。

我已将控制台应用程序中引用的程序集的 Copy Local 设置为 Yes。引用的 DLL 在运行时存在于控制台应用程序的 bin 文件夹中。

这里是csproj引用:

<Reference Include="NAME">
<HintPath>path\bin\Debug\netcoreapp1.1\NAME.dll</HintPath>
<Private>true</Private>
<SpecificVersion>false</SpecificVersion>
</Reference>

这只发生在 .NET Core DLL 上,我对 .NET Framework 4.5.* 及更高版本完全没有问题。

有人可以阐明这个问题吗?我发现的与此相关的任何 SO/MSDN 页面都是特定问题,例如针对错误版本的 DLL,这无济于事。

最佳答案

使用 2.0 之前的工具不支持在 .NET Core 应用程序中引用 DLL 文件。

原因是依赖关系图(deps.json 文件)生成不包括这些文件,而且很可能无论如何都无法工作,因为它无法整合所引用 DLL 的引用/依赖关系。

对于即将发布的 2.0 版本,只要您还引用原始包正在使用的所有 DLL/包,这种情况就应该有效。语法为:

<Reference Include="path/to/my.dll" />

.NET Core 2.0 也将支持以这种方式引用为 .NET 4.6.1 构建的程序集,但如果 DLL 使用不受支持的 API 调用,它可能会在运行时失败。

关于c# - 在 .NET Core 应用程序中引用 DLL 时出现 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44176640/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com