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

时间:2019-12-11 11:32:20

标签: visual-studio

当我在其他计算机上运行WPF应用程序时,会抛出该错误。

Description: A .NET Core application failed.
Application: SamplerSLEX.exe
Path: C:\Users\admin\Downloads\TesterSLEX\TesterSLEX\SamplerSLEX.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:\Users\admin\Downloads\TesterSLEX\TesterSLEX\].
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时,它对我有帮助,但我想将其添加到我的项目库中。 知道有人我下载了什么小工具来修复它吗?

WPF netcoreapp3.0

7 个答案:

答案 0 :(得分:27)

还可以在Visual Studio 2019中选择Ajith的答案“部署模式:自包含”:

GUI in Visual Studio

答案 1 :(得分:1)

从错误消息开始,如果这是framework-dependent application

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.exe

将DOTNET_ROOT环境设置为以下位置之一
C:\Program Files\dotnet OR C:\Program Files (x86)\dotnet

来自“我的电脑|属性|高级|环境变量”。现在,无论使用什么方式,都重新启动IDE /终端。

答案 2 :(得分:0)

我今天在.Net core 3.0应用程序中遇到了同样的错误。这是因为您缺少计算机中的.net核心运行时间,并且正在安装依赖于框架的应用程序。

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

使用以下命令从命令行发布

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

https://docs.microsoft.com/en-us/dotnet/core/rid-catalog#windows-rids

获取RID详细信息

答案 3 :(得分:0)

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

我的自包含exe出现错误

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

我正在发布.net core 3.1运行时,并引用了引用System.Data.SqlClient版本= 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页面上的建议,但是对于其他无法控制库的人,可能会发现这种用法。

答案 4 :(得分:0)

EntityFrameWork Core已移出dotnet sdk,您需要全局安装依赖项。检查progr C:\ Users“您的用户名” .dotnet \ tools.store \ dotnet-ef \ 3.1.5(如果存在)全局成功安装了EFcore,并确保您的项目级别Ef Core依赖版本与全局安装的EFcore版本匹配.....如果不匹配,它将抛出错误提示...如果卸载,请确保删除上述路径文件夹C:\ Users“您的用户名” .dotnet \,然后重新安装...。它将对我有用

答案 5 :(得分:0)

由于某些奇怪的原因,.net发布者未能发布独立的.Net Core 3应用程序(控制台应用程序)。我已经解决了这一问题,只需在服务器上安装.Net Core 3 Runtime。

答案 6 :(得分:0)

为避免在依赖框架的应用程序中丢失“ hostfxr.dll”,我的解决方案是在目标计算机上安装“主机捆绑包”。

ASP.NET Core运行时使您可以运行现有的Web /服务器应用程序。在Windows上,我们建议安装主机捆绑包,其中包括.NET Core Runtime和IIS支持。

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