无法升级 Azure Functions Core Tools,异常“无法创建类型为‘NuGet.Versioning.VersionRange’的实例”

Jon*_*ter 4 c# debugging visual-studio azure-functions

我正在尝试运行 Azure 函数。升级到 .Net 6 后,使用更新版本的 Visual Studio 2022在本地调试它会出现以下异常:

启动操作“dca54039-23ee-4ec2-ad9d-9deafe1b2869”期间发生主机错误。[2022-09-08T07:07:05.464Z] Microsoft.Extensions.Configuration.Binder:无法创建“NuGet.Versioning.VersionRange”类型的实例,因为它缺少公共无参数构造函数。

在我的机器上运行时出现异常

我的同事没有收到此错误,并且在生产中效果很好。 我们发现的最大区别是他们的核心工具版本与我的不同。

  • 我的:4.0.3971
  • 他们的:4.0.4736

我相信问题就在这里,但除了尝试升级之外,我还尝试了其他方法:

添加详细标志不会让我进一步并输出以下内容:

启用详细信息

从那时起我就一直在尝试升级Tools版本。但事情是这样的:即使 func --version 告诉我我有 4.0.4736,调试窗口仍然显示 4.0.3971。我尝试了以下操作:

  • 我卸载了所有内容,然后从上面提到的页面再次安装了 MSI。
  • npm i -g azure-functions-core-tools@4我在包管理器控制台中运行。
  • 我使用 Chocolatey 卸载并重新安装
  • 我重新安装了 Visual Studio
  • 我在提升的 powershell 窗口中执行了以下操作:

PS C:\Windows\system32> npm i -g azure-functions-core-tools@4 --unsafe-perm true

18秒修改了51个包,审计了52个包,发现0个漏洞

PS C:\Windows\system32> npm i -g azure-functions-core-tools@4.0.4736 --unsafe-perm true

26秒修改了51个包,审计了52个包,发现0个漏洞

PS C:\Windows\system32> func --version 4.0.4736

似乎没有什么帮助。

Jon*_*ter 6

解决方案是:

  • 关闭 Visual Studio
  • 删除文件夹 C:\Users\***\AppData\Local\AzureFunctionsTools
  • 重新启动 Visual Studio。
  • 启动应用程序,重新创建文件夹。

当我让我的同事审查这个问题(以确保我没有发布任何漏洞)时,他说“哦,其他同事找到了解决方案,你应该删除 C:\Users\***\ AppData\Local\AzureFunctionsTools 就可以了”

所以我做了。

而且它马上就能发挥作用。