【发布时间】:2017-08-09 15:47:15
【问题描述】:
我正在用 C# (.NET Core) 编写一个 Alexa 技能,以从 AWS Lambda 函数(在 Amazon Linux 上运行)运行。当我编译项目(dotnet publish)时,我收到错误:
找不到框架“.NETCoreApp,Version=v1.0”的运行时目标 与目标运行时之一兼容:'win10-x64、win81-x64、 win8-x64,win7-x64'。可能的原因:
- 项目尚未恢复或恢复失败 - 运行 dotnet 恢复
- 该项目未列出 'win10-x64、win81-x64、 win8-x64, win7-x64' 在“运行时”部分。
- 您可能正在尝试 发布不支持的库。使用 dotnet 包 分发库。
如果我指定一个 Windows 运行时(例如 win10-x64),它将编译得很好,但是我的一个依赖项(Google Sheets API)由于在 Linux 上而在运行时出现问题-基于 Lambda。使用 Linux 运行时(例如 debian.8-x64)会导致同样的编译错误。
当 AWS 开发工具包自己的平台是 Linux 时,为什么它需要 Windows 运行时?我觉得我错过了一些明显的东西,当有人向我指出问题时,我会很高兴地面对手掌。
我的 project.json 文件(主应用和 .NET Core 类库项目):
AlexaProj
{
"version": "1.0.0-*",
"buildOptions": {
},
"dependencies": {
"Microsoft.NETCore.App": "1.1.1",
"Amazon.Lambda.Core": "1.0.0*",
"Amazon.Lambda.Serialization.Json": "1.0.1",
"Amazon.Lambda.Tools": {
"type": "build",
"version": "1.3.0-preview1"
},
"Slight.Alexa.Core": "1.0.10-beta",
"AlexaProjLib": "1.0.0-*"
},
"tools": {
"Amazon.Lambda.Tools": "1.3.0-preview1"
},
"runtimes": {
"win10-x64": { } <--- Compiles, but fails at runtime
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
AlexaProjLib
{
"version": "1.0.0-*",
"dependencies": {
"Google.Apis": "1.21.0",
"Google.Apis.Core": "1.21.0",
"Google.Apis.Oauth2.v2": "1.21.0.672",
"Google.Apis.Sheets.v4": "1.21.0.798",
"NETStandard.Library": "1.6.1"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
【问题讨论】:
标签: c# amazon-web-services .net-core aws-lambda aws-sdk