在dotnet发布后,在docker映像中找不到Application Insights依赖关系

尝试从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镜像基于microsoft/aspnetcore

microsoft/aspnetcore-build:1.1.0-projectjson镜像上使用dotnet restoredotnet publish的文件microsoft/aspnetcore-build:1.1.0-projectjson

{app}.deps.json "targets" ,我有:

  "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文件夹,但是我的发布输出的根目录下有Microsoft.ApplicationInsights.AspNetCore

我觉得我失去了一些明显的东西。 任何帮助,将不胜感激。

更新:

将Application Insights更新到2.0.0不起作用。

删除应用程序见解只是将问题转移到另一个程序集。

切换到独立部署不起作用。

添加了COREHOST_TRACE=1并收到以下输出:

 Processing TPA for deps entry [Microsoft.ApplicationInsights.AspNetCore, 2.0.0, lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll] Considering entry [Microsoft.ApplicationInsights.AspNetCore/2.0.0/lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll] and probe dir [/packagescache/x64] The hash file is invalid [/packagescache/x64/Microsoft.ApplicationInsights.AspNetCore/2.0.0/Microsoft.ApplicationInsights.AspNetCore.2.0.0.nupkg.sha512] Skipping... match hash failed Considering entry [Microsoft.ApplicationInsights.AspNetCore/2.0.0/lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll] and probe dir [/packagescache] The hash file is invalid [/packagescache/Microsoft.ApplicationInsights.AspNetCore/2.0.0/Microsoft.ApplicationInsights.AspNetCore.2.0.0.nupkg.sha512] Skipping... match hash failed Error: assembly specified in the dependencies manifest was not found -- package: 'Microsoft.ApplicationInsights.AspNetCore', version: '2.0.0', path: 'lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll' 

我通过执行在发布文件夹中find的应用程序解决了这个问题。 例如,如果您在Ubuntu 16.04的发布模式下发布.net core 1.1应用程序,则您的发布文件将位于

\ BIN \发布\ netcoreapp1.1 \ ubuntu.16.04-64

这个目录里有一个可执行文件,但这不是你要使用的可执行文件。 您实际上需要更深入一个目录并使用可执行文件

\ BIN \发布\ netcoreapp1.1 \ ubuntu.16.04-64 \发布

我有一个类似的问题,在Docker容器中运行我的aspnet核心应用程序。 我已经从Dotnet核心1.1升级到aspnet核心2。

我必须改变我的Dockerfile基地使用微软/ aspnet而不是微软/ Dotnet作为Dotnet基地没有所有aspnet libs。