【问题标题】:Adding reference to an assembly from .NET Standard 2.0 project causses error [closed]从 .NET Standard 2.0 项目添加对程序集的引用会导致错误 [关闭]
【发布时间】:2021-02-12 05:02:13
【问题描述】:

我有一个 .NET Standard 2.0 类库,我想添加对 System.DirectoryServices 的引用。一切看起来都很好,但在运行时我收到了这个错误:

无法加载要执行的参考程序集

详细说明是这样的:

无法加载文件或程序集“System.DirectoryServices,版本=4.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a”。不应加载引用程序集以供执行。它们只能在 Reflection-only loader 上下文中加载。 (0x80131058)

我的项目“p1StandarClasese”是 .NetStandar 版本。 2.0,自动添加了对DLL的引用“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.8\System.DirectoryServices.dll”

引用是由 Visual Studio 编辑器自动添加的,VS 检测到我编写的代码需要 Assembly 并要求我添加,所以我说是的......并且添加了引用

我真的不明白,我猜一个.NET Standard 2.0 不能引用那个版本的.NET 程序集? 如果是这种情况 - 有什么建议吗?如何使用该 Active Directory 程序集?我需要它来进行身份验证。有没有办法解决这个问题?

谢谢你的帮助

【问题讨论】:

  • 你是如何引用那个程序集的?通过nuget package?
  • 不是掘金,VS 在我的磁盘中创建了对 aDLL 的引用,是否有用于 Active Directory 的掘金?

标签: c# .net-standard


【解决方案1】:

这是由于依赖项目的版本低于请求的版本,或者使用了错误的 DLL 进行引用。

查看兼容性图表以确认: https://docs.microsoft.com/en-us/dotnet/standard/net-standard

根据您的问题,我的假设是您使用的是 .Net Standard v2.0 类库 并在您的项目定义中引用 System.DirectoryServices 的 4.0.0 版本。

如果这不正确,您能否提供解决方案中每个项目的 .Net 版本以及引用的位置?错误消息应该有额外的上下文来确定你是如何引用的。

您始终可以删除引用并使用 NuGet 重做引用以确保生成正确的包。

【讨论】:

  • 谢谢,我做到了,我已经删除了引用并搜索了一个金块,就是这样,......随着金块开始工作,谢谢
猜你喜欢
  • 1970-01-01
  • 2017-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-20
相关资源
最近更新 更多