在azure函数中使用MongoDB驱动程序



我正试图使用azure函数将数据上传到mongodb,但我收到一个错误,说"未能找到类型或命名空间名称"MongoDB"(是否缺少using指令或程序集引用?("。我有一个function.proj文件,它引用了MongoDB.Driver包,但似乎不起作用。我试着使用#r sytax来导入包,但也不起作用。我使用的是azure funtion运行时的第3版。有人能给我指正确的方向吗?

功能的内容。项目文件

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MongoDB.Driver.Core" Version="2.11.3" />
<PackageReference Include="MongoDB.Driver" Version="2.11.3" />
<PackageReference Include="MongoDB.Bson" Version="2.11.3" />
<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
</ItemGroup>

使用指令

#r "Newtonsoft.Json"
using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using MongoDB.Driver;
using MongoDB.Bson;

更新:

感谢Ggd Hhdhd的工作。Azure功能无法在基于crx的Azure上安装某些包。解决方案是将相关dll直接发送到azure上的bin目录。这是文件:

https://learn.microsoft.com/en-us/azure/azure-functions/functions-reference-csharp#referencing-自定义组件

这就是结构:

https://learn.microsoft.com/en-us/azure/azure-functions/functions-reference-csharp#folder-结构

原始答案:

请不要使用C#脚本来执行此操作。

不支持在azure上的C#脚本azure函数中安装某些程序包。我注意到你安装了三个包,但实际上,你只需要安装MongoDB。驱动程序是可以的。MongoDB。Driver是一个集成包,包括MongoDB。river.Core和MongoDB。Bson.

问题不是来自您的代码。问题来自于只安装MongoDB。驱动程序包会破坏功能。

顺便说一下,函数.proj的格式应该是这样的:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MongoDB.Driver" Version="2.11.3" />
</ItemGroup>
</Project>

你错过了</Project>

我试着找一些包裹,但没有找到。

最新更新