首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure函数v2,Core3.1无法加载文件或程序集System.Memory,Version=4.2.0.0

Azure函数v2,Core3.1无法加载文件或程序集System.Memory,Version=4.2.0.0
EN

Stack Overflow用户
提问于 2020-02-03 14:07:50
回答 3查看 3K关注 0票数 4

我在Core3.1上本地运行一个Azure函数v2。函数连接从EventHub读取事件并将数据写入Redis数据库。当连接函数出现错误时

代码语言:javascript
复制
System.Private.CoreLib: Exception while executing function: 
 One or more errors occurred. (Could not load file or assembly 'System.Memory, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified.). 
 Pipelines.Sockets.Unofficial: Could not load file or assembly 'System.Memory, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified. System.Private.CoreLib: Could not load the specified file.

在Azure函数之外,相同的Redis连接代码正常工作。

我已经将System.Memory nuget软件包V4.5.3安装到项目中,但没有帮助。在NugetforCore3.1中没有列出System.Memory版本4.2

函数使用启动

代码语言:javascript
复制
[assembly: FunctionsStartup(typeof(...))]

项目档案

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <AzureFunctionsVersion>v2</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.0.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="4.1.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.3" />
    <PackageReference Include="System.ComponentModel.Annotations" Version="4.7.0" />
    <PackageReference Include="System.Memory" Version="4.5.3" />
    <PackageReference Include="Utf8Json" Version="1.3.7" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\Configuration\Configuration.csproj" />
  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

怎么了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-04 10:47:55

通过将Azure函数版本更改为项目v3中的项目.csproj文件,解决了这个问题。

代码语言:javascript
复制
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <AzureFunctionsVersion>v3</AzureFunctionsVersion>
  </PropertyGroup>
票数 4
EN

Stack Overflow用户

发布于 2021-03-03 00:11:06

如果问题仍然存在,请验证您使用的是正确版本的Azure (v3),我从nodejs中获取了版本2--也就是说,我在nodejs中安装了版本2,在微软的路径中安装了第3版,但我选择了第一个版本,即nodejs,它一直给我错误,直到我删除nodejs,您可以在nodejs中将其更新到版本3,我想它也能正常工作。

票数 1
EN

Stack Overflow用户

发布于 2020-02-03 14:10:14

您能否尝试将true添加到您的.csproj文件中:

代码语言:javascript
复制
 <PropertyGroup>
    ...
    <UseNETCoreGenerator>true</UseNETCoreGenerator>
  </PropertyGroup>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60040890

复制
相关文章

相似问题

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