首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >XmlSerializer异常:必须添加对程序集网络标准的引用

XmlSerializer异常:必须添加对程序集网络标准的引用
EN

Stack Overflow用户
提问于 2022-08-25 12:02:37
回答 2查看 152关注 0票数 1

我正在研究一个包含以下目标框架的解决方案:

  • .Net Framework 4.7.2
  • .Net 6.0
  • .Net标准2.0

(注:我们的项目中没有一个目标的框架版本低于4.7.2)。

我一直在逐步将一些库项目从4.7.2升级到Standard2.0,并将一些前端项目从4.7.2升级到6.0。在升级了几个项目之后,我们的一些单元测试失败了,所有这些都是由一行代码造成的:

var serializer = new XmlSerializer(typeof(BusinessClass));

XmlSerializer类属于System.Xml.Serialization命名空间。BusinessClass类存在于.Net标准2.0库项目中。

运行这些测试的项目是一个.Net框架4.7.2 MSTest项目。

完全例外是:

代码语言:javascript
运行
复制
System.InvalidOperationException: Unable to generate a temporary class (result=1).
error CS0012: The type 'System.Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
error CS0012: The type 'System.Enum' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.

它会导致多个测试失败,但所有这些失败都是由对XmlSerializer的单个引用造成的。

我已采取下列步骤,试图解决这一问题,但没有结果:

  • 我尝试在测试项目中引用NETStandard.Library nuget包.

  • netstandard引用的属性下,我已经将Copy Local设置为True,并确认netstandard.dll出现在bin文件夹.

中。

  • 我已经将以下内容添加到测试项目的csproj文件中:

  • 我在app.config中添加了一个bindingRedirect,如下所示:

2.0.0.0.

  • I逆转了bindingRedirect,迫使降级为

  • 我已经将System.Xml.XmlSerializer nuget包引用到MSTest项目.

我已经将BusinessClass. nuget包引用到包含的库中

上述任何步骤都没有解决这个问题。我开始觉得与netstandard的关系是症状性的,而不是病因。

不幸的是,我没有想法了。我还能采取什么其他方法来进一步调试这个问题呢?

EN

Stack Overflow用户

回答已采纳

发布于 2022-08-26 10:37:16

因此,如果在XmlSerializer标准或.Net核心项目中使用.Net,您将得到这个异常。然而,这条消息非常误导人,修复与添加对netstandard的引用毫无关系。

修复实际上非常简单:我向Microsoft.XmlSerializer.Generator添加了一个Nuget引用,它突然起作用了。在运行时,在.Net标准或.Net核心上下文中使用.Net包是必需的。

有关此的微软文章:https://learn.microsoft.com/en-gb/dotnet/core/additional-tools/xml-serializer-generator

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73487144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档