首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么.NET 6上的Azure函数要查找System.ComponentModel版本6.0.0.0?

为什么.NET 6上的Azure函数要查找System.ComponentModel版本6.0.0.0?
EN

Stack Overflow用户
提问于 2022-02-24 16:46:26
回答 2查看 2.5K关注 0票数 4

我正在部署一个名为“桥”到Azure的Azure函数,目标是.NET 6。该项目引用的是我编写的一个名为"DBLibrary“的类库,该库的目标是.NET标准2.1。Azure函数可以在我的PC上本地运行,不会出现运行时错误。

当我向Azure发布Azure函数时,我在Azure Portal中看到一个“函数运行时错误”,上面写着:

无法加载文件或程序集'System.ComponentModel,Version=6.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f7f11d50a3a‘。系统找不到指定的文件。

我没有直接针对System.ComponentModel,也没有看到任何nuget提要中都有一个用于"System.ComponentModel“的nuget软件包版本6.0.0。为什么Azure函数要查找这个版本的System.ComponentModel 6.0.0?如果该版本确实存在,为什么Azure函数找不到它?

以下是csproj用于“桥”Azure功能的相关部分:

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
      <TargetFramework>net6.0</TargetFramework>
      <AzureFunctionsVersion>v4</AzureFunctionsVersion>
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
      <PackageReference Include="Microsoft.Extensions.Azure" Version="1.1.1" />
      <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
      <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.0.1" />
    </ItemGroup>
    <ItemGroup>
      <ProjectReference Include="..\DBLibrary\DBLibrary.csproj" />
    </ItemGroup>
</Project>

下面是由Azure函数项目引用的"DBLibrary“类库csproj的相关部分:

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
      <TargetFramework>netstandard2.1</TargetFramework>
      <ApplicationIcon />
      <OutputType>Library</OutputType>
      <StartupObject />
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="Azure.Storage.Blobs" Version="12.10.0" />
      <PackageReference Include="Dapper" Version="2.0.123" />
      <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.0" />
      <PackageReference Include="System.Data.SqlClient" Version="4.8.3" />
      <PackageReference Include="System.Text.Json" Version="6.0.2" />
    </ItemGroup>
</Project>

我尝试在Azure函数csproj中将_FunctionsSkipCleanOutput设置为true,因为这是作为nuget包解析问题的潜在解决方案提供的:https://github.com/Azure/azure-functions-host/issues/7061该解决方案没有更改我在Azure门户中看到的运行时错误。

EN

回答 2

Stack Overflow用户

发布于 2022-03-30 09:48:24

如果您已升级到.NET 6.0,则需要执行以下操作以克服此错误。

  1. 将cs proj更新为v4

  1. 在Azure中的函数应用程序中将配置更新到

下面

  1. 更新解决方案

的所有nuget包

清洁解决方案,然后重建,它应该在当地工作,也应该在Azure工作。

票数 6
EN

Stack Overflow用户

发布于 2022-02-25 10:33:30

您正在使用的.net标准2.1但是,Microsoft.Azure.Functions.Extensions可以支持向上的.NET Standard 2.0

您应该将下面的包添加到您的函数应用程序中,然后再次部署到Azure .

代码语言:javascript
复制
 dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 5.0.0-rc.2.20475.6

有关更多信息,请参考@Jeremy的和。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71255419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档