无法在 DLL 中的类中加载依赖关系系统.draw.common



我正在将程序复制到虚拟机,以查看我需要什么软件以及我需要启用(或禁用(哪些设置。我的程序在我的工作笔记本电脑和我自己的笔记本电脑(旧版本(上运行良好,但在 VM 上,程序在运行时引发错误。

我的程序由一个可执行文件和多个DLL组成,可执行文件和DLL都可以很好地启动,包括使用依赖system.drawing.common。但是其中一个 DLL 中的一个类给出一个错误,指出无法加载依赖项system.drawing.common。重新生成有问题的 DLL 不会发出错误警告。请参阅下图以了解我看到的错误。

[错误][

2019/12/18 11:04:02 AM][线程 0006]> [akka://ModulairVisionFramework/user/AcquireImageActor]无法加载文件? 或程序集"System.Drawing.Common,版本=4.0.2.0,区域性=中性,>PublicKeyToken=cc7b13ffcd2ddd51"。系统找不到指定的文件。 原因:System.IO.FileNotFoundException:无法加载文件或程序集>'System.Drawing.Common,版本=4.0.2.0,区域性=中性,>公钥令牌=cc7b13ffcd2ddd51'。系统找不到指定的文件。 文件名:"System.Drawing.Common, Version=4.0.2.0, Culture=Neutral,>PublicKeyToken=cc7b13ffcd2ddd51' at CameraSystem.Actor.AcquireImageActor.<.ctor>b__2_0(AcquireImage resp( 在 lambda_method(闭包、对象、动作1 ) at Akka.Tools.MatchHandler.PartialHandlerArgumentsCapture2.句柄(T>值( 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(Envelope envelope(

是什么原因导致主可执行文件和 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" />

最新更新