【问题标题】:Azure Functions on .net6.0 fail to run locally with hostpolicy.dll error.net6.0 上的 Azure Functions 无法在本地运行并出现 hostpolicy.dll 错误
【发布时间】:2022-01-18 14:35:27
【问题描述】:

我们的一位开发人员目前正在使用 Windows 10 上的 Visual Studio 2022 Preview 在 .Net 6.0 中构建 Azure Function 应用程序。

该解决方案有多个项目、1 个 Azure Function 和多个类库。它无法运行:

元数据生成失败。退出代码:'-2147450750' 错误:'无法从 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.0\hostpolicy.dll] 加载 dll,HRESULT: 0x800700C1加载需要时发生错误来自 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.0]' DATA.Services.CompaniesQuery.Function C:\Users\r_ver.nuget\packages\microsoft.azure.webjobs 的库 hostpolicy.dll .script.extensionsmetadatagenerator\4.0.1\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets 37

Microsoft.NETCore.App 使用的是 6.0.1 版,并且在依赖项 > 框架 > Microsoft.NETCore.App 的 Azure Function 项目中的解决方案资源管理器中列出。

我们尝试了以下方法:

重新安装 .Net 6 SDK

重装VS 2022 17.0.5版

笔记本电脑重启

已删除“C:\Users\someuser.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator”文件夹的内容。

C:\Program Files\dotnet\shared\Microsoft.NETCore.App 有 .Net Core 2.0.0 和 6.0.1 的文件夹

该错误与 2.0.0 有关,但是在项目中没有对此进行引用,包括 csproj 文件。

是否需要手动更新目标文件?目前不知道有任何解决方案。

【问题讨论】:

  • 您是否安装了最新版本的 Azure Functions Core Tools?

标签: c# azure azure-functions .net-6.0 visual-studio-2022


【解决方案1】:

我已经在我的环境中尝试过,它按预期工作,

在 Windows 10 上使用 Visual Studio 2022 Preview(17.0.5) 在 .Net 6.0 中构建 Azure Function 应用程序。

以下是我遵循的步骤:

然后确保我们在.csproj 文件中提供了 Azure 函数运行时 v4,如下所示:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <AzureFunctionsVersion>v4</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.0.1" />
  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

  • 允许的防火墙设置

输出:-

注意:-

  • 安装Azure功能核心工具版本时,请确保我们的电脑上只安装了一个核心工具版本。

  • .net 6 仅支持 Azure 函数运行时版本 4x。

有关详细信息,请参阅此 Microsoft 文档Azure Functions runtime versions overview

【讨论】:

  • 谢谢 - 我会要求开发人员一步一步地进行,然后报告。
  • 实际的修复方法是删除 C:\Program Files\dotnet\shared\Microsoft.NETCore.App 文件夹,其中包含所有 2.0 文件。不知道为什么要引用这些内容。
  • 是的,这是正确的,有时我们也需要更新 environment variable 以解决此类错误。
  • 无论如何我都会将您的答案标记为解决方案 - 这是必要步骤的有用预演。
  • 当然@JudeFisher,谢谢:)
猜你喜欢
  • 2017-08-08
  • 2020-09-14
  • 2022-01-20
  • 2022-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多