在dotnet发布后,在docker镜像中找不到Application Insights依赖项

时间:2017-02-23 20:10:37

标签: docker asp.net-core .net-core azure-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

使用泊坞窗图片dotnet restore上的dotnet publishmicrosoft/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

2 个答案:

答案 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库。