[英]Unable to load DLL 'libdl' when using System.Drawing.Common NuGet package on AWS Lambda
[英]Cannot load dependency system.drawing.common in a class in a DLL
我正在将我的程序复制到虚拟机以查看我需要什么软件以及我需要启用(或禁用)哪些设置。 我的程序在我的工作笔记本电脑和我自己的笔记本电脑(旧版本)上运行良好,但在 VM 上,程序在运行时抛出错误。
我的程序由一个可执行文件和许多 DLL 组成,可执行文件和 DLL 都能够很好地启动,包括使用依赖项system.drawing.common
。 但是其中一个 DLL 中的一个类给出了无法加载依赖项system.drawing.common
的错误。 重建有问题的 DLL 不会发出错误警告。 请参阅下图了解我看到的错误。
[错误][12/18/2019 11:04:02 AM][Thread 0006]> [akka://ModulairVisionFramework/user/AcquireImageActor] 无法加载文件? 或程序集“System.Drawing.Common,Version=4.0.2.0,Culture=neutral,>PublicKeyToken=cc7b13ffcd2ddd51”。 该系统找不到指定的文件。 原因:System.IO.FileNotFoundException:无法加载文件或程序集 >'System.Drawing.Common,Version=4.0.2.0,Culture=neutral,>PublicKeyToken=cc7b13ffcd2ddd51'。 该系统找不到指定的文件。 文件名: 'System.Drawing.Common,版本= 4.0.2.0,文化=中性>公钥= cc7b13ffcd2ddd51'在CameraSystem.Actors.AcquireImageActor <构造函数> b__2_0(AcquireImage RESP)在lambda_method(封闭,对象,动作。
1 ) at Akka.Tools.MatchHandler.PartialHandlerArgumentsCapture
2.Handle(T >value) at Akka.Actor.ReceiveActor.ExecutePartialMessageHandler(Object message, >PartialAction`1 partialAction) at Akka.Actor.ReceiveActor.OnReceive(Object message) at Akka。 Actor.UntypedActor.Receive(Object message) at Akka.Actor.ActorBase.AroundReceive(Receive receive, Object message) at Akka.Actor.ActorCell.ReceiveMessage(Object message) at Akka.Actor.ActorCell.Invoke(信封信封)
可能是什么原因导致主可执行文件和 DLL 的接口都使用system.drawing.common
很好,但是有问题的 DLL 中的一个类不能使用依赖项? 如何解决这个问题? 到目前为止,我还没有在我的工作笔记本电脑或另一台计算机上遇到过这个问题(我的应用程序的旧版本,但仍然使用system.drawing.common
)。
编辑在有问题的 DLL 中的两个可执行项目中,我都将 NuGet 包管理器用于system.drawing.common
。 包是如何包含的:
<PackageReference Include="system.drawing.common" Version="4.6.0" />
大约一周前我遇到了同样的问题。 如果这是一个 .NET 核心程序集,您引用它的方式会产生很大的不同。 不要直接引用 .NET 库(右键单击 -> 添加引用),而是在项目文件中使用包引用:
<PackageReference Include="System.Drawing.Common" Version="4.6.0" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.