【问题标题】:The program '[3984] dotnet.exe' has exited with code -2147450751 (0x80008081)程序“[3984] dotnet.exe”已退出,代码为 -2147450751 (0x80008081)
【发布时间】:2018-07-18 05:58:20
【问题描述】:
The program '[3984] dotnet.exe' has exited with code -2147450751 (0x80008081).
The program '[3984] dotnet.exe: Program Trace' has exited with code 0 (0x0).
The program '[2492] iisexpress.exe: Program Trace' has exited with code 0 (0x0).
The program '[7352] chrome.exe: WebKit' has exited with code -1 (0xffffffff).
The program '[2492] iisexpress.exe' has exited with code 0 (0x0). 

在我的 mvc 项目(使用 VS 2017 .Net Core 2.14)上启动调试器后,chrome 在调试期间打开和关闭一秒钟,我收到此错误。 有人有想法吗?

【问题讨论】:

  • 通过在“附加到进程”对话框的“附加到”字段中选择“本机代码”来修复。出于某种原因(可能是我安装了一个附加组件?)Visual Studio 已将 chrome.exe 识别为这台机器上类型为“WebKit,x86”的进程,并选择了错误的附加方式。链接:social.msdn.microsoft.com/Forums/vstudio/en-US/…

标签: debugging asp.net-core-2.0


【解决方案1】:

TL;DR; 只需从here 运行最新可用的 .NET 核心 SDK 设置

完整详细信息:当我尝试运行一个简单的 .NET 核心控制台应用程序时,输出窗口中显示以下错误并且应用程序未启动:

程序“[11036] dotnet.exe”已退出,代码为 -2147450749 (0x80008083)。

然后我转到我的应用程序代码的\bin\Debug\netcoreapp1.1 路径,并在该路径中启动了一个 powershell 窗口。然后我尝试使用以下命令从控制台启动应用程序:

dotnet .\myapp.dll

这给出了以下错误:

找不到任何兼容的框架版本 指定框架“Microsoft.NETCore.App”,版本“1.1.2”不是 成立。 - 检查应用程序依赖项并定位安装在以下位置的框架版本: \ - 或者,安装框架版本“1.1.2”。

然后我意识到 Visual Studio 根本没有在输出窗口中显示这个真正的错误,这对我来说会更有用。

所以这敲响了一些钟声。我快速运行命令dotnet --version 以了解已安装的最高 .NET Core 版本。它返回了:

2.0.3

我还检查了C:\Program Files\dotnet\sdk 目录,它包含以下目录:

1.0.0-preview2-003131
1.0.0-preview4-004233
1.0.4
1.1.0

最后,我决定从here 运行最新可用的 .NET 核心 SDK 设置。设置有两个部分:

  1. Microsoft .NET core 1.0.5 运行时
  2. Microsoft .NET 核心 Windows Server 托管

第二部分对于真正解决这个错误至关重要。安装程序的第二部分要求您的计算机上启用 IIS 功能作为先决条件。因此,请在开始使用安装程序之前启用 IIS 功能。

只需运行并完成安装程序设置即可解决我的问题。

【讨论】:

【解决方案2】:

我只需右键单击项目然后选择属性并更改目标框架 从 1.1 到 1.0。完成!

【讨论】:

  • 我遇到了与 OP 非常相似的问题,这个解决方案对我有用。根据我自己的理解,为什么此修复程序有效?是什么让它解决了 (0x80008081) 问题?
【解决方案3】:

我遇到了类似的错误。在我的情况下,我有一个 NuGet 包,它针对的 dotnetcore 次要版本比我在本地安装的 SDK 更高。为了解决这个问题,我在 NuGet 包上下载了一个次要版本,但更新到最新的 SDK 也可能会奏效。

【讨论】:

    【解决方案4】:

    举个例子,您使用的是 .net core 2.2 版。

    请检查,

    1. 您已安装“.NET Core 2.2”SDK x64 或 x86 版本。如果没有,您可以从https://dotnet.microsoft.com/download/visual-studio-sdks 下载它
    2. 确保在以下文件夹结构下生成“2.2.110”文件夹

    C:\Program Files\dotnet\sdk

    【讨论】:

      【解决方案5】:

      从“\bin\Debug”路径中删除所有内容,重新构建解决方案并运行。问题解决了!

      【讨论】:

        【解决方案6】:

        这是我遇到并打开新问题的类似问题。我正在寻找不是workaround / solution 的答案。所以我决定不回答我自己的问题,所以在这里回答。

        微软安全公告:Insecure library loading could allow remote code execution

        Microsoft 已发布新的API enhancements for Windows,以帮助开发人员正确、安全地加载external libraries

        这与单独的 Visual Studio 无关。

        LOAD_LIBRARY_SEARCH_SYSTEM32 0x00000800
        
         If this value is used, %windows%\system32 is searched
         for the DLL and its dependencies. Directories in the standard
         search path are not searched. This value cannot be combined with
         LOAD_WITH_ALTERED_SEARCH_PATH.
        
        **Effective Platforms are:**
        1- Windows 7, 
        
        2 - Windows Server 2008 R2,
         
        3- Windows Vista and Windows Server 2008:  This value requires KB2533623 to be installed.
        
        4 - Windows Server 2003 and Windows XP:  This value is not supported
        

        重要信息:

        1. 名称:CoreHostLibLoadFailure
        2. 值:0x80008082
        3. 值(有符号,32 位):2147450750
        4. 值(8 位):130
        5. 说明:

        加载dependent library 时失败。如果任何托管 组件在依赖库上调用 LoadLibrary/dlopen 和 调用失败,返回此错误码。最常见的情况 失败是如果依赖库缺少它的一些 依赖项(例如,必要的 CRT 在 机),可能是安装损坏或不完整。这个错误代码是 也从corehost_resolve_component_dependencies返回,如果它是 调用未通过主机初始化的 hostpolicy 层。如果直接加载coreclr,通常会发生这种情况 没有托管层,然后使用AssemblyDependencyResolver (这是一个不受支持的场景)。

        References :1

        References :2

        Refernces : 3

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-07
          • 2012-07-20
          • 1970-01-01
          • 1970-01-01
          • 2019-05-02
          • 2021-04-16
          • 2017-06-05
          • 1970-01-01
          相关资源
          最近更新 更多