发生了一个致命错误。找不到所需的库 hostfxr.dll

当我在其他计算机上运行 WPF 应用程序时,它会抛出这个错误:

Description: A .NET Core application failed.
Application: program.exe
Path: C:\fakepath\program.exe
Message: A fatal error occurred. The required library hostfxr.dll could not be found.
If this is a self-contained application, that library should exist in
[C:\fakepath\].
If this is a framework-dependent application, install the runtime in the global location [C:\Program
Files\dotnet] or use the DOTNET_ROOT environment variable to specify the runtime location or
register the runtime location in [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x64\InstallLocation].

添加库运行时3.1.0对我很有帮助。

122355 次浏览

我得到了同样的错误。今天的 Net Core 3.0应用。这是因为你错过了。网核在机器上运行时,并且正在安装一个框架依赖的应用程序。

解决方案是使用部署模式自包含发布应用程序。

使用下面的命令从命令行发布

dotnet publish -c Release -r <RID> --self-contained true

https://learn.microsoft.com/en-us/dotnet/core/rid-catalog#windows-rids获得 RID 的详细信息

除了 Ajith 的回答,“部署模式: 自包含”也可以在 Visual Studio 2019中选择:

GUI in Visual Studio

从错误消息来看,如果这是 依赖于框架的应用程序:

If this is a framework-dependent application, install the runtime in the global location [C:\Program
Files\dotnet] or use the DOTNET_ROOT environment variable to specify the runtime location or
register the runtime location in [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x64\InstallLocation].

请将 DOTNET _ ROOT 环境设置为以下位置之一,具体取决于安装 dotnet.exe的位置

C:\Program Files\dotnet OR C:\Program Files (x86)\dotnet

从“我的计算机 | 属性 | 高级 | 环境变量”。现在重新启动您正在使用的 IDE/终端。

为了寻找解决问题的方法,我在这个页面上停留了很多次。

我的独立执行程序引发了错误

Could not load file or assembly 'System.Data.SqlClient, Version=4.6.1.1

我发布了. net core 3.1运行时,并引用了一个引用 System. Data. SqlClient Version = 4.6.1.1的 netstandard 库

下面的 git hub 页面将此标记为已知问题 Https://github.com/dotnet/core/blob/master/release-notes/3.1/3.1-known-issues.md#net-core-312

将 exe 设置为发布.net core 3.0运行时为我们修复了这个问题。 我们已经控制了引用的库,因此可能会遵循 github 页面上的建议,但是对于任何其他没有控制库的人来说,可能会发现这是有用的。

EntityFrameWork 核心已经从 dotnet sdk 中移出,您需要安装全局依赖性检查程序 C: 用户“ Your User Name”。Store dotnet-Ef 3.1.5如果存在的话,你已经成功地在全球范围内安装了 EFcore,并且确保你的项目级别的 Ef Core 依赖版本与全球范围内安装的 EFcore 版本匹配... ... 如果有不匹配的话,它将陷入以上错误... ... 如果你卸载了,确保你正在删除上面的路径文件夹 C: 用户“你的用户名”。重新安装... 。这将为我工作

因为一些奇怪的原因。网络出版商未能出版自成一体的。Net Core 3应用程序(控制台应用程序)。我刚刚安装的时候就解决了这个问题。服务器上的 NetCore3运行时。

在依赖于框架的应用程序中避免“ hostfxr.dll 丢失”的解决方案是在目标计算机上安装“ HostingBundle”。

NET 核心运行时允许您运行现有的 Web/服务器应用程序。在 Windows 上,我们建议安装 HostingBundle,其中包括。NET 核心运行时和 IIS 支持。

Https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-aspnetcore-3.1.9-windows-hosting-bundle-installer