.net core 针对.NET Framework 4.6时,找不到.NET Core-XElement

.net core 针对.NET Framework 4.6时,找不到.NET Core-XElement,.net-core,xelement,.net Core,Xelement,在.NET核心项目和目标.NET Framework 4.6中使用XElement时,我遇到了一个奇怪的问题。我做了一个非常简单的项目来重现错误 我创建了一个只有一个类的标准库项目 public class Class1 { public Class1() { XElement element = null; } } 在我的project.json中,我希望以.net核心和.net framework 4.6为目标 { "version": "

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

  • 我创建了一个只有一个类的标准库项目

    public class Class1
    {
        public Class1()
        {
            XElement element = null;
        }
    }
    
  • 在我的project.json中,我希望以.net核心和.net framework 4.6为目标

     {
       "version": "1.0.0-*",
    
       "dependencies": {
         "NETStandard.Library": "1.6.0",
        "System.Xml.XmlDocument": "4.3.0"
       },
    
       "frameworks": {
         "netstandard1.6": {
           "imports": "dnxcore50"
         },
         "net46": {
         }
       }
     }
    
  • 编译项目时,我总是收到错误“找不到类型或命名空间名称‘XElement’(是否缺少using指令或程序集引用?)(此错误仅在.NET Framework 4.6中发生)

    我不知道它为什么不编译。我尝试使用.net framework 4.6创建一个控制台应用程序,并添加对System.Xml.XmlDocument的引用,效果良好。只有在.NET核心项目中,它才不会


    谢谢。

    我找到了解决办法。System.Xml.Linq必须添加为net46的框架程序集

    {
      "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"
          }
        }
      }
    }