RaspberryPi MonoDevelop C#-错误:命名空间名称的类型';序列化';不存在于命名空间

本文关键字:命名空间 序列化 不存在 类型 C#- MonoDevelop 错误 RaspberryPi | 更新日期: 2023-09-27 18:24:16

需要帮助来解决错误。我在"Visual Studios 2012"中创建了一个聊天机器人,它运行起来没有问题。然而,当我把它移到RaspberryPi上在MonoDevelop中编辑它时,我会出现以下错误:

"中不存在命名空间名称"Serialization"的类型命名空间"System.Xml".

这是在using system.Xml.Serialization上。

我也得到错误:

"找不到类型或命名空间名称"XmlSerializer"。是缺少程序集引用吗?".

这是在以下两条线上:

XmlSerializer responseSave; XmlSerializer allSave;

我相信这是由于名称空间的初始错误,一旦第一个错误被解决,就会自动解决。

问题是:当我键入using System.Xml.Serialization时,它会自动完成。当我用光标高亮显示XmlSerializer时,我得到以下内容:

类别类System.Xml.Serialization.XmlSerializer类,用于将对象序列化和反序列化为XML。(是的,它说了两次!)这表明它知道这个类是什么……那么为什么会出错呢?

我正在使用以下内容:

using System
using System.Collections.Generic
using System.Linq
using System.Text
using System.Xml
using System.IO
using System.Xml.Serialization

在我的参考资料中,我有以下内容:

系统系统核心System.Xml.LinqSystem.Data.DataSetExtensionsMicrosoft.CSharp
系统数据命名空间MonoDevelop.CoreMonoDevelop.XmlEditor
System.Runtime.Serialization

额外注意事项:我还收到3个警告:

引用"System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=[一串字母和数字]"对于项目的目标框架无效。(【项目名称】)

引用"System.Xml,Version=4.0.0.0,Culture=neutral,PublicKeyToken=[一串字母和数字]"对于项目的目标框架无效。(【项目名称】)

引用"Microsoft.CSharp,Version=4.0.0.0,Culture=neutral,PublicKeyToken=[字母和数字束]"对于项目的目标框架无效。(【项目名称】)

RaspberryPi MonoDevelop C#-错误:命名空间名称的类型';序列化';不存在于命名空间

我在linux上编译时遇到了这个错误,在我的情况下,这是由于引用名称中的区分大小写问题。

在Visual Studio中查看System.Xml引用的引用属性时,我注意到该名称显示为System.Xml。解决方案中引用同一程序集的其他项目按预期显示为System.Xml。由于某种原因,删除和重新添加引用没有任何效果。

我最终手动编辑了有问题项目的.csproj文件,以相应地纠正这种情况:

<ItemGroup>
    <Reference Include="System.Xml" />
</ItemGroup>