Improve hostfxr error messages
This commit is contained in:
@@ -1588,7 +1588,10 @@ bool InitHostfxr()
|
||||
void* hostfxr = Platform::LoadLibrary(path.Get());
|
||||
if (hostfxr == nullptr)
|
||||
{
|
||||
LOG(Fatal, "Failed to load hostfxr library ({0})", path);
|
||||
if (FileSystem::FileExists(path))
|
||||
LOG(Fatal, "Failed to load hostfxr library, possible platform/architecture mismatch with the library. See log for more information. ({0})", path);
|
||||
else
|
||||
LOG(Fatal, "Failed to load hostfxr library ({0})", path);
|
||||
return true;
|
||||
}
|
||||
hostfxr_initialize_for_runtime_config = (hostfxr_initialize_for_runtime_config_fn)Platform::GetProcAddress(hostfxr, "hostfxr_initialize_for_runtime_config");
|
||||
@@ -1627,7 +1630,28 @@ bool InitHostfxr()
|
||||
if (rc != 0 || handle == nullptr)
|
||||
{
|
||||
hostfxr_close(handle);
|
||||
LOG(Fatal, "Failed to initialize hostfxr: {0:x} ({1})", (unsigned int)rc, String(init_params.dotnet_root));
|
||||
if (rc == 0x80008096) // FrameworkMissingFailure
|
||||
{
|
||||
String platformStr;
|
||||
switch (PLATFORM_TYPE)
|
||||
{
|
||||
case PlatformType::Windows:
|
||||
case PlatformType::UWP:
|
||||
platformStr = PLATFORM_64BITS ? "Windows x64" : "Windows x86";
|
||||
break;
|
||||
case PlatformType::Linux:
|
||||
platformStr = PLATFORM_ARCH_ARM64 ? "Linux Arm64" : PLATFORM_ARCH_ARM ? "Linux Arm32" : PLATFORM_64BITS ? "Linux x64" : "Linux x86";
|
||||
break;
|
||||
case PlatformType::Mac:
|
||||
platformStr = PLATFORM_ARCH_ARM || PLATFORM_ARCH_ARM64 ? "macOS Arm64" : PLATFORM_64BITS ? "macOS x64" : "macOS x86";
|
||||
break;
|
||||
default:;
|
||||
platformStr = "";
|
||||
}
|
||||
LOG(Fatal, "Failed to resolve compatible .NET runtime version in '{0}'. Make sure the correct platform version for runtime is installed ({1})", platformStr, String(init_params.dotnet_root));
|
||||
}
|
||||
else
|
||||
LOG(Fatal, "Failed to initialize hostfxr: {0:x} ({1})", (unsigned int)rc, String(init_params.dotnet_root));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user