在.NET Core项目中使用XElement并以.NET Framework 4.6为目标时,我遇到了一个奇怪的问题。我做了一个非常简单的项目来重现错误。
我创建了一个只有一个类的标准库项目。
public class Class1
{
public Class1()
{
XElement element = null;
}
}
在我的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": {
}
}
}
当我编译项目时,我总是收到错误“找不到类型或命名空间名称'XElement'(你是否缺少using指令或程序集引用?)”(这个只有.NET Framework 4.6)才会出现错误
我不知道它为什么不编译。我试图用.net框架4.6创建一个控制台应用程序,并添加对System.Xml.XmlDocument的引用,它可以工作。只有.NET核心项目,它没有。
谢谢。
答案 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"
}
}
}
}