.NET Core - 在面向.NET Framework 4.6时找不到XElement

时间:2017-02-16 12:24:00

标签: .net-core xelement

在.NET Core项目中使用XElement并以.NET Framework 4.6为目标时,我遇到了一个奇怪的问题。我做了一个非常简单的项目来重现错误。

  1. 我创建了一个只有一个类的标准库项目。

    public class Class1
    {
        public Class1()
        {
            XElement element = null;
        }
    }
    
  2. 在我的project.json中,我想定位.net核心和.net框架4.6

     {
       "version": "1.0.0-*",
    
       "dependencies": {
         "NETStandard.Library": "1.6.0",
        "System.Xml.XmlDocument": "4.3.0"
       },
    
       "frameworks": {
         "netstandard1.6": {
           "imports": "dnxcore50"
         },
         "net46": {
         }
       }
     }
    
  3. 当我编译项目时,我总是收到错误“找不到类型或命名空间名称'XElement'(你是否缺少using指令或程序集引用?)”(这个只有.NET Framework 4.6)才会出现错误

    我不知道它为什么不编译。我试图用.net框架4.6创建一个控制台应用程序,并添加对System.Xml.XmlDocument的引用,它可以工作。只有.NET核心项目,它没有。

    谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 System.Xml.Linq必须添加为net46

的frameworkAssemblies
{
  "version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "System.Xml.XmlDocument": "4.3.0"
  },

  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    },
    "net46": {
      "frameworkAssemblies": {
        "System.Xml.Linq": "4.0.0.0"
      }
    }
  }
}