c# - 将 C# 函数发布到 AWS lambda 时出现“类型或命名空间不存在”错误
问题描述
我已经成功部署了一层包,现在正尝试使用该应用程序发布我的功能。
存储的 S3 存储桶中的工件文件:
<?xml version="1.0"?>
-<StoreArtifacts>
<Package Version="2.0.0" Id="Amazon.Lambda.Core"/>
<Package Version="1.2.0" Id="Amazon.Lambda.Core"/>
<Package Version="2.1.0" Id="Amazon.Lambda.Serialization.SystemTextJson"/>
<Package Version="1.8.0" Id="DocX"/>
<Package Version="1.18.0" Id="Azure.Core"/>
<Package Version="1.0.0" Id="Microsoft.Bcl.AsyncInterfaces"/>
<Package Version="4.6.0" Id="Microsoft.Graph"/>
<Package Version="2.0.5" Id="Microsoft.Graph.Core"/>
<Package Version="4.35.1" Id="Microsoft.Identity.Client"/>
<Package Version="6.12.2" Id="Microsoft.IdentityModel.JsonWebTokens"/>
<Package Version="6.12.2" Id="Microsoft.IdentityModel.Logging"/>
<Package Version="6.12.2" Id="Microsoft.IdentityModel.Protocols"/>
<Package Version="6.12.2" Id="Microsoft.IdentityModel.Protocols.OpenIdConnect"/>
<Package Version="6.12.2" Id="Microsoft.IdentityModel.Tokens"/>
<Package Version="6.12.2" Id="System.IdentityModel.Tokens.Jwt"/>
<Package Version="1.0.2" Id="System.Memory.Data"/>
<Package Version="13.0.1" Id="Newtonsoft.Json"/>
</StoreArtifacts>
然后我尝试使用以下方法部署该功能:
dotnet lambda deploy-function DemoFunction --function-layers arn:aws:lambda:us-east-2:687758306845:layer:DemoLayer:1
我收到多个错误
... publish: C:\Users\UserX\source\repos\DemoTests\DemoTests\src\DemoTests\Function.cs(4,7): error CS0246: The type or namespace name 'Xceed' could not be found (are you missing a using directive or an assembly reference?) [C:\Users\UserX\source\repos\DemoTests\DemoTests\src\DemoTests\DemoTests.csproj]
... publish: C:\Users\UserX\source\repos\DemoTests\DemoTests\src\DemoTests\Function.cs(5,7): error CS0246: The type or namespace name 'Xceed' could not be found (are you missing a using directive or an assembly reference?) [C:\Users\UserX\source\repos\DemoTests\DemoTests\src\DemoTests\DemoTests.csproj]
... publish: C:\Users\UserX\source\repos\DemoTests\DemoTests\src\DemoTests\Function.cs(8,7): error CS0246: The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?) [C:\Users\UserX\source\repos\DemoTests\DemoTests\src\DemoTests\DemoTests.csproj]
... publish: C:\Users\UserX\source\repos\DemoTests\DemoTests\src\DemoTests\Function.cs(10,17): error CS0234: The type or namespace name 'Identity' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) [C:\Users\UserX\source\repos\DemoTests\DemoTests\src\DemoTests\DemoTests.csproj]
... publish: C:\Users\UserX\source\repos\DemoTests\DemoTests\src\DemoTests\Function.cs(11,17): error CS0234: The type or namespace name 'Graph' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) [C:\Users\UserX\source\repos\DemoTests\DemoTests\src\DemoTests\DemoTests.csproj]
我怎样才能让这个部署工作?失败的行位于顶部的导入处:
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Xceed.Document.NET;
using Xceed.Words.NET;
using Amazon.Lambda.Core;
using System.IO;
using Newtonsoft.Json.Linq;
using System.Text.RegularExpressions;
using Microsoft.Identity.Client;
using Microsoft.Graph;
using System.Net.Http.Headers;
解决方案
您确定您的测试以及您的项目都引用了所需的包吗?
DemoTests.csproj
根据您的错误消息,似乎缺少参考:
[C:\Users\UserX\source\repos\DemoTests\DemoTests\src\DemoTests\DemoTests.csproj]
推荐阅读
- javascript - 在数组VueJS中设置对象的属性?
- python - 任何迭代 __slots__ 并动态分配值的方式?
- python - Kivy - Urlrequest 在我的电脑上有效,但在我的手机上无效
- c++ - 为什么我尝试在 opengl 中加载的 3ds 文件出现这个未处理的异常?
- fasttext - 无监督学习 api 的训练数据
- javascript - React.js:如果值溢出输入元素,则在输入元素onBlur中的值之后显示“...”
- python-3.6 - 我想打印素数
- javascript - 具有粘性列问题的角材料垫表,列中有长文本
- android - 某些设备上的android应用程序启动错误
- react-native - 如何在 GitHub Actions 中设置和访问环境变量?