尝试从docker镜像运行我的应用程序时收到以下错误:
Error: assembly specified in the dependencies manifest was not found -- package: 'Microsoft.ApplicationInsights.AspNetCore', version: '1.0.2', path: 'lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll'
泊坞窗图片基于microsoft/aspnetcore
。
使用泊坞窗图片dotnet restore
上的dotnet publish
和microsoft/aspnetcore-build:1.1.0-projectjson
构建的文件
在"targets"
的{{1}}下,我有:
{app}.deps.json
我发布的输出中没有 "Microsoft.ApplicationInsights.AspNetCore/1.0.2": {
"dependencies": {
"Microsoft.ApplicationInsights": "2.1.0",
"Microsoft.AspNetCore.Hosting.Abstractions": "1.0.0",
"Microsoft.AspNetCore.Http.Abstractions": "1.0.0",
"Microsoft.AspNetCore.Mvc.ViewFeatures": "1.0.1",
"Microsoft.Extensions.Configuration": "1.0.0",
"Microsoft.Extensions.DiagnosticAdapter": "1.0.0",
"Microsoft.Extensions.Logging.Abstractions": "1.0.0",
"System.Net.NameResolution": "4.3.0"
},
"runtime": {
"lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll": {}
},
"compile": {
"lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll": {}
}
},
文件夹,但我的已发布输出的根目录中有lib
。
我觉得我错过了一些明显的东西。任何帮助将不胜感激。
更新
将Application Insights更新为2.0.0无效。
删除Application Insights只会将问题转移到另一个程序集。
切换到独立部署无效。
添加Microsoft.ApplicationInsights.AspNetCore
并收到以下输出:
COREHOST_TRACE=1
答案 0 :(得分:7)
我通过执行发布文件夹中的应用程序解决了这个问题。例如,如果您在Ubuntu 16.04的发布模式下发布.net核心1.1应用程序,则您发布的文件将在
中\ BIN \释放\ netcoreapp1.1 \ ubuntu.16.04-64
此目录中包含可执行文件,但这不是您要使用的可执行文件。实际上你需要更深入一个目录并使用
中的可执行文件\ BIN \释放\ netcoreapp1.1 \ ubuntu.16.04-64 \发布
答案 1 :(得分:0)
我在Docker容器中运行我的aspnet核心应用程序时遇到了类似的问题。我已经从Dotnet核心1.1升级到aspnet核心2.
我不得不改变我的Dockerfile基础以使用Microsoft / aspnet而不是Microsoft / Dotnet,因为Dotnet基础没有所有的aspnet库。