我开发了一个带有.Net核心API的lambda无服务器项目,并尝试使用dotnet lambda deploy-serverless部署该软件包
项目:AWS lambda无服务器.Net核心API目标框架:在dotnet deploy-servreless中显示2.1错误
我读过this article和许多类似的话题,关于roslyn但是做这些任务并没有解决我的问题。
更新:API项目构建时没有任何警告,甚至可以使用visual studio运行,调用端点甚至没有任何错误。使用powershell / dotnet lambda命令部署时会出现此问题
PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
PM> Uninstall-package Microsoft.Net.Compilers
但是按照答案并没有解决我的问题。我的解决方案中没有这些软件包,甚至安装它们导致了.net核心的冲突警告。我认为我的案子不是关于罗斯林的。
我在AWS Github上发现了一个相关的主题:dotnet lambda package' failure after framework changing但它没有回答就关闭了。
为了发现问题的背景和范围,我尝试了这些测试和相关结果:
错误:部署无服务器的lambda .net核心API中断。 (并将默认目标框架从1.0更改为2.1)
测试:部署外部无服务器lambda .net核心API:工作部署简单的lambda函数clean模板(使用更改目标框架):works部署无服务器lambda .Net API清理模板(不更改目标框架):works部署无服务器lambda。 Net API清理模板(具有更改目标框架):中断
解决:我使用dotnet cli命令创建了项目,它使用2.1版(最新的lambda)创建,并且打包/部署成功。我想拥有netcoreapp2.1及更高版本的VS 2017全新安装应该可以正常工作。
环境:我正在使用VS2017,Windows 10.首次安装的visual studio版本有.net core 1.0,并使用VS update installer更新到2.2。
事实上,Visual Studio更新安装程序可能存在错误,某些部分使用net core 1.0会留在用户的计算机后面。 (目前每次创建项目时,它都使用1.0而不是最新版本,2.2我应该手动更新)