VSCode 对 XDocument 的依赖
VSCode dependency for XDocument
我正在尝试编写一个 C# 控制台应用程序来读取 XML 并使用 XDocument 进行处理。这看起来很简单,但我无法让智能感知识别和编译器构建代码。我显然缺少参考,但看不到哪个。
Program.cs:
using System;
using System.Xml.XDocument;
using System.IO;
namespace TestVSCode
{
public class Program
{
public static void Main(string[] args)
{
XDocument _xml = XDocument.Load(File.ReadAllText(@"C:\Temp\Test.xml"));
Console.Read();
}
}
}
project.json 文件:
{
"version": "1.0.0-*",
"description": "TestVSCode Console Application",
"authors": [ "" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"tooling": {
"defaultNamespace": "TestVSCode"
},
"dependencies": {
},
"commands": {
"TestVSCode": "TestVSCode"
},
"frameworks": {
"dnx451": { },
"dnxcore50": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Console": "4.0.0-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Threading": "4.0.11-beta-23516",
"System.Xml.XDocument": "4.0.11-beta-23516",
"System.IO": "4.0.11-beta-23516",
"System.IO.FileSystem": "4.0.1-beta-23516"
}
}
}
}
运行 dnu restore 工作正常,但 dnu build 出现此错误:
C:\Temp\TestVSCode\Program.cs(2,14): DNX,Version=v4.5.1 error CS0234: 类型或命名空间名称 'Xml' 不存在于
命名空间 'System'(您是否缺少程序集引用?)
C:\Temp\TestVSCode\Program.cs(11,12): DNX,Version=v4.5.1 错误 CS0246: 类型或命名空间名称 'XDocument' 无法
找到(您是否缺少 using 指令或程序集引用?)
C:\Temp\TestVSCode\Program.cs(11,29): DNX,Version=v4.5.1 error CS0103: The name 'XDocument' does not exist in the curren
上下文
请帮助我理解我在做什么错误。
此致,
Vemund Haga
这里有两个问题:
- 您的
using
指令试图引入以 XDocument
结尾的 命名空间 。你想要 using System.Xml.Linq;
这是包含 XDocument
的命名空间
您需要为 DNX451 构建指定 XML 类 所需的框架程序集。我还没有弄清楚默认情况下会引入哪些框架程序集,以及何时需要指定它们,但在这种情况下,以下集合有效:
"dnx451": {
"frameworkAssemblies": {
"System.Xml": "",
"System.Xml.Linq": ""
}
}
查看我的 以解释为什么需要 frameworkAssemblies
而不仅仅是 dependencies
。
我正在尝试编写一个 C# 控制台应用程序来读取 XML 并使用 XDocument 进行处理。这看起来很简单,但我无法让智能感知识别和编译器构建代码。我显然缺少参考,但看不到哪个。
Program.cs:
using System;
using System.Xml.XDocument;
using System.IO;
namespace TestVSCode
{
public class Program
{
public static void Main(string[] args)
{
XDocument _xml = XDocument.Load(File.ReadAllText(@"C:\Temp\Test.xml"));
Console.Read();
}
}
}
project.json 文件:
{
"version": "1.0.0-*",
"description": "TestVSCode Console Application",
"authors": [ "" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"tooling": {
"defaultNamespace": "TestVSCode"
},
"dependencies": {
},
"commands": {
"TestVSCode": "TestVSCode"
},
"frameworks": {
"dnx451": { },
"dnxcore50": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Console": "4.0.0-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Threading": "4.0.11-beta-23516",
"System.Xml.XDocument": "4.0.11-beta-23516",
"System.IO": "4.0.11-beta-23516",
"System.IO.FileSystem": "4.0.1-beta-23516"
}
}
}
}
运行 dnu restore 工作正常,但 dnu build 出现此错误:
C:\Temp\TestVSCode\Program.cs(2,14): DNX,Version=v4.5.1 error CS0234: 类型或命名空间名称 'Xml' 不存在于 命名空间 'System'(您是否缺少程序集引用?) C:\Temp\TestVSCode\Program.cs(11,12): DNX,Version=v4.5.1 错误 CS0246: 类型或命名空间名称 'XDocument' 无法 找到(您是否缺少 using 指令或程序集引用?) C:\Temp\TestVSCode\Program.cs(11,29): DNX,Version=v4.5.1 error CS0103: The name 'XDocument' does not exist in the curren 上下文
请帮助我理解我在做什么错误。
此致, Vemund Haga
这里有两个问题:
- 您的
using
指令试图引入以XDocument
结尾的 命名空间 。你想要using System.Xml.Linq;
这是包含XDocument
的命名空间
您需要为 DNX451 构建指定 XML 类 所需的框架程序集。我还没有弄清楚默认情况下会引入哪些框架程序集,以及何时需要指定它们,但在这种情况下,以下集合有效:
"dnx451": { "frameworkAssemblies": { "System.Xml": "", "System.Xml.Linq": "" } }
查看我的 frameworkAssemblies
而不仅仅是 dependencies
。