在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 restore
和dotnet 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。
- 授权使用docker时,不能使用identityserver4
- 我如何提供应用程序configuration到我的在Docker容器中运行的.NET Core Web API服务?
- Docker中运行的Dotnet核心Web API在使用外部WCF服务时无法进行身份validation
- Docker构build安装不必要的包,导致图像运行失败
- 如何将.net core web api部署到linux机器上
- 在dotnet SDK和Docker容器上
- 如何在Docker容器中运行.NETunit testing
- 在ASP.NET Core中构builddocker:“没有这样的文件或目录”错误
- 在docker中使用.net核心build立DB2连接时,无法加载DLL“libdb2.so”