RaspberryPi MonoDevelop C# - 错误:命名空间名称的类型'序列化'名称空间中不存在System.Xml'

时间:2014-09-24 11:07:30

标签: c# xml serialization raspberry-pi

需要帮助来解决错误。我在'Visual Studios 2012'中创建了一个ChatBot,它运行没有问题。但是,当我将它移到RaspberryPi以在MonoDevelop中编辑它时,我有以下错误:

  

“命名空间名称'序列化'的类型不存在于   命名空间'System.Xml'“。

这是using system.Xml.Serialization

我也得到错误:

  

“无法找到类型或命名空间名称'XmlSerializer'。是   你错过了一个装配参考?“。

这是以下两行:

XmlSerializer responseSave; XmlSerializer allSave;

我认为这是由于命名空间的初始错误,并且在第一个错误解决后会自动解决。

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

  

类   class 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 System.Core   System.Xml.Linq的   System.Data.DataSetExtensions   Microsoft.CSharp
  System.Data   的System.Xml   MonoDevelop.Core   MonoDevelop.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 = [一串字母和数字]'对项目的目标框架无效。 ([项目名称])

1 个答案:

答案 0 :(得分:1)

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

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

我最终手动编辑了有问题项目的.csproj文件,以便相应地纠正案例:

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