背景:我目前正在尝试使用 EF6 连接到 MySQL 数据库,并正在寻找有关无法从程序集中加载类型的错误消息的解决方案。我相信我已经找到了一个可能的解决方案,使用包含 class 的不同程序集的带外版本,但是该解决方案产生了另一个问题,该问题似乎与第一个问题完全不同,可以作为它自己的问题(即使回答一个问题可能同时回答两个问题)。
问题:如何使用 Visual Studio 2019 Preview for Mac 包含带外程序集,以使我可以使用程序集中的特定类?我想使用3.0 预览版来System.Component.Annotations
获得AssociatedMetadataTypeTypeDescriptionProvider
EF 所需的课程。当我尝试按照说明添加 OOB 程序集并重建我的项目时,会引发异常,指示似乎也包含该类的不同程序集的旧版本。
包控制台输出:
Successfully installed 'System.ComponentModel.Annotations 4.6.0-preview.18571.3' to Ef2MySql
例外:
TypeLoadException: Could not load type 'System.ComponentModel.DataAnnotations.AssociatedMetadataTypeTypeDescriptionProvider' from assembly 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
编辑:我刚刚在不相关的空目录中运行并使用VSAssociatedMetadataTypeTypeDescriptionProvider
NuGet包但是,它不在 NuGet 包中的所有 DLL 中。只是里面的那个。nuget install System.ComponentModel.Annotations -Version 4.6.0-preview.19073.11
System.ComponentModel.Annotations.4.6.0-preview.19073.11/lib/net461/System.ComponentModel.Annotations.dll
net461
进一步编辑:但是,添加我验证的程序集将类作为 .NET 程序集(而不是在 VS 中使用 NuGet)仍然不能解决错误。