找不到提供hostxfr.dll的自包含.net core 3.1应用程序

问题描述

我有一个win-x64应用程序,它是c ++调用的C ++ / CLI .Net Core DLL,而后者又调用了C#.Net core 3.1 DLL。在我的开发计算机上工作正常。

我已经设置了所有项目以复制所有依赖关系,并且C#项目后期构建步骤具有

dotnet restore -r win-x64
dotnet publish "$(ProjectFileName)" -r win-x64 --no-build -c $(ConfigurationName) -o $(OutDir) --no-restore -p:PublishReadyToRun=true --self-contained true

我将EXE和所有DLL复制到目标计算机,它们都位于一个目录(包括抱怨它找不到的hostxfr.dll文件)。当我使用set COREHOST_TRACE = 1运行它时,我得到了

Can't open the SDK installed location registry key,result: 0x2
Using global installation location [C:\Program Files\dotnet] as runtime location
.
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 [].
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 t
o specify the runtime location or register the runtime location in [HKLM\SOFTWAR
E\dotnet\Setup\InstalledVersions\x64\InstallLocation].

The .NET Core runtime can be found at:
  - https://aka.ms/dotnet-core-applaunch?missing_runtime=true&arch=x64&rid=win81
-x64
Failed to start the .NET Core runtime. Error code -2147450749

我尝试设置DOTNET_ROOT =目标目录名-没有帮助。 我尝试删除了准备运行的标记并进行了重建-这也无济于事。

我需要解决什么魔咒?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...