【问题标题】:The program '[1684] dotnet.exe' has exited with code -2147450750 (0x80008082)程序“[1684] dotnet.exe”已退出,代码为 -2147450750 (0x80008082)
【发布时间】:2018-12-07 12:03:50
【问题描述】:

尝试在本地调试 Azure 函数 .NET STANDARD 2.0。使用 Visual Studio 2017 CE。昨天工作的东西想知道出了什么问题。卸载所有 NET CORE SDK 并放回 2.1.201。找到有关 Core 1.1 的其他解决方案,但没有运气。调试时控制台立即关闭并仅留下此错误消息

The program '[1684] dotnet.exe' has exited with code -2147450750 (0x80008082).

【问题讨论】:

  • 所以你已经安装了 .net core sdk 2.1.300 并且曾经工作过,但是今天你的功能无法启动?
  • 我想我一直在运行 2.1.201。还安装了其他一些,将它们全部删除并放回 2.1.201
  • 您使用的是 VS 15.8(预览版)吗?有一个已知问题github.com/Azure/Azure-Functions/blob/master/…
  • 我使用的是 15.7.3 版本

标签: azure visual-studio-2017 asp.net-core-2.0 azure-functions


【解决方案1】:

更新

我之前去错地方了。此问题不是由缺少 .Net Core 2.1 引起的。它可能与Azure Functions and Web Jobs Tools有关(在VS菜单上,工具>扩展和更新)。

15.0.40502.0 版本开始,该扩展程序使用一个提要,该提要在服务发生更改时使模板、构建工具和运行时保持最新。

%LocalAPPDATA%\AzureFunctionsTools\Releases\2.2.2\manifest.json

"CliEntrypointPath": "C:\\Users\\UserName\\AppData\\Local\\AzureFunctionsTools\\Releases\\2.2.2\\cli\\func.exe"

在 VS 中,之前 2.x cli 的入口总是func.dll。消除 .Net Core 2.1 对 cli 2.0.1-beta.31(主机 2.0.11888)的要求,将自包含版本(x86)推送到 VS。它的条目是func.exe

如果在您的 x64 平台上该条目仍为 func.dll,则由于在 x64 dotnet 上运行 x86 func.dll 会发生错误。

深入挖掘,我们可以看到如下错误信息

Failed to load the dll from [C:\Users\UserName\AppData\Local\AzureFunctionsTools\Releases\2.2.2\cli\hostpolicy.dll], HRESULT: 0x800700C1
An error occurred while loading required library hostpolicy.dll from [C:\Users\UserName\AppData\Local\AzureFunctionsTools\Releases\2.2.2\cli\]

解决方案

如果您的Azure Functions and Web Jobs Tools15.0.40617,只需将条目更改为func.exe。然后重启VS(必要步骤)。

如果您的版本较低,建议您更新到15.0.40617。更新后删除%LocalAPPDATA%\AzureFunctionsTools,然后新建一个Azure Function项目,在创建对话框等待VS下载新的cli和模板。

一段时间后,我们可以看到提示变为

【讨论】:

  • 我在阅读您的答案之前重新安装了 Visual Studio。这样就解决了
  • @Jepzen 现在一切正常吗?您介意检查一下您的Azure Functions and Web Jobs Tools 或.net core sdk 版本,以验证我是否正确吗?
  • 是的,它现在正在工作。在 AzureFunctionsTools\Releases 下,我有 1.2.0、2.1.0、2.2.2。 dotnet --version 吐出 2.1.201。够了吗?
  • @Jepzen 是的,重新安装必须更新您的Azure Functions and Web Jobs Tools。在 VS 菜单,Tools>Extensions and Updates 检查它,你可能会发现它的版本是 15.0.40617.0。这个新扩展可帮助您在没有 .net core 2.1 的情况下运行 2.0.11888(又名 2.2.2)。
  • 确认将manifest.jsonCliEntrypointPath入口中的func.dll改为func.exe,重启VS解决了启动函数时An error occurred while loading required library hostpolicy.dll from的问题。
【解决方案2】:

我遇到了完全相同的问题。我安装了 .NET Core 2.1 SDK,将 Azure Functions 和 Web Jobs Tools 更新到版本 15.0.40617.0,但它仍然无法正常工作。我决定将 Azure Functions 和 Web Jobs Tools 恢复到 15.0.40608.0 版本,它可以工作了!此外,我有 .NET Core 的 2.1.301 版本。

【讨论】:

  • 您能检查一下您的功能主机版本吗?调试时看到这一行输出,[6/29/2018 10:16:42 PM] Starting Host (HostId=xxx, InstanceId=xxx, Version=2.0.11888.0, ProcessId=....)。如果它确实适用于最新的功能核心工具,则版本应该是2.0.11888.0。在我这边,使用15.0.40608.0 使VS 使用旧的2.0.11651.0。此版本可能适用于您的代码,但在新版本中您将失去许多修复和增强功能。
  • 据我所知,它目前适用于旧功能核心工具(主机版本=2.0.11651.0)。稍后我会检查你关于 func.dll -> func.exe 的提示。
  • @JerryLiu 我尝试了您的解决方案并且它有效。谢谢!
猜你喜欢
  • 1970-01-01
  • 2018-07-18
  • 2012-07-20
  • 1970-01-01
  • 1970-01-01
  • 2019-05-02
  • 2021-04-16
  • 2017-06-05
  • 1970-01-01
相关资源
最近更新 更多