.Net Core(2.1)-Lambda函数可以正常工作,而在2.2中却不能工作吗?

Roy*_*mir 2 c# amazon-web-services .net-core aws-lambda

我使用.Net Core 2.1创建了一个简单的空AWS Lambda函数:

在此处输入图片说明

这是文件夹结构:

在此处输入图片说明

(这是csproj

还有一个FunctionHandler,它获取DI并调用一些虚拟方法:

在此处输入图片说明

现在运行“ Mock Lambda测试工具”,我们可以看到它有效:

在此处输入图片说明

那么问题出在哪里呢?

我在这里阅读支持2.2:

这意味着您现在可以使用.NET Core 2.2和.NET Core 3.0预览编写Lambda函数。Amazon.Lambda.RuntimeSupport可作为GitHub上的源代码或NuGet包提供。

因此,我创建了一个新的空lambda项目,但使用2.2:

在此处输入图片说明

相同的代码。但是现在当我运行“ Mock Lambda测试工具”时,出现了一个错误:

AWS .NET Mock Lambda测试工具(0.9.2)发生未知错误,导致进程退出:无法在E:\ JenkinsWorkspaces \ Lam中的Amazon.Lambda.TestTool.Runtime.LocalLambdaRuntime.Initialize(String directory)上找到deps.json文件。 \ E:JenkinsWorkspaces \ Lam \ LambdaSandboxCoreCLRApi \ Tools \ LambdaSandboxCoreCLRApi \ Tools \ LambdaTestTool \ Amazon.Lambda.TestTool \ Runtime \ LocalLambdaRuntime.cs:Amazon.Lambda.TestTool.Program.Main(String [] args)处的第50行\ Amazon.Lambda.TestTool \ Program.cs:line 46按任意键退出

这是错误:

在此处输入图片说明

题:

这是为什么?我deps.json在2.1中没有任何文件。

那么,为什么在2.2中需要它?另外,此路径在错误中显示的是什么:E:\JenkinsWorkspaces...?我没有詹金斯,也没有类似的东西。

Roy*_*mir 5

好吧,我已经找到了造成这种情况的原因(我不知道为什么会首先发生),但这是事实。忍受我。

当我创建一个2.1 lambda项目时,一切正常。(显然)

问题出在2.2项目(针对2.2和2.2的nuget)。(它显示了我在问题中显示的错误)

所以我想,如果我要创建一个2.1项目,然后更新(!)它的nuget并将目标更改为2.2怎么办?.........有效!

这真的很奇怪。因为我期望不会。

因此,我想到了,让我们比较一下2.2项目(无效)的文件系统和2.1项目更新为2.2项目(确实有效的)的文件系统。

在右侧,是严格的2.2项目(无更新),在左侧,是已更新为2.2的项目:

在此处输入图片说明

我注意到一些.Net核心2.1文件已在升级中,但没有在严格的2.2版本中,所以我想,我该如何获取那些丢失的文件?

在此处输入图片说明

因此,我已经(暂时)将项目目标更改为2.1:

在此处输入图片说明

然后我运行构建

这导致出现2.1文件夹的文件:

在此处输入图片说明

而现在.............,一切正常!:

在此处输入图片说明