2015-12-17 4 views
1

Я пытаюсь написать приложение консоли C# для чтения XML и обработки с помощью XDocument. Это кажется простым, но я не могу заставить intellisense распознать и компилятор построить код. Мне явно не хватает справки, но не вижу.VSCode зависимость для 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" 
     } 
    } 
    } 
} 

Запуск ДНУ восстановление отлично работает, но ДНУ сборка дает эту ошибку:

C: \ Temp \ TestVSCode \ Program.cs (2,14): DNX, версия = v4.5.1 ошибка CS0234: Тип или имя пространства имен «Xml» не существует в пространства имен «Система» (вам не хватает ссылки на сборку?) C: \ Temp \ TestVSCode \ Program.cs (11,12): DNX, Version = v4.5.1 ошибка CS0246: имя типа или пространства имен «XDocument» не может быть найдено (вам не хватает директивы использования или сборки ссылка) C: \ Temp \ TestVSCode \ Program.cs (11,29): DNX, Version = v4.5.1 ошибка CS0103: имя 'XDocument' не существует в контексте Curren т

Пожалуйста, помогите я понимаю, какую ошибку я делаю.

С наилучшими пожеланиями, Vemund Хага

+0

Первая проблема - пространство имен должно быть 'System.Xml.Linq', а не' System.Xml.XDocument'. –

+0

С исправлением 'using' исправлено построение' dnxcore50'. –

ответ

1

Есть две проблемы:

  • Ваша using директива пытается тянуть в имен заканчивающегося в XDocument. Вы хотите using System.Xml.Linq;, который является пространством имен, содержащим XDocument
  • Вам необходимо указать сборки фреймов, необходимые для классов XML для сборки DNX451. Я еще не работал, какие именно каркасные узлы вытягиваются, по умолчанию против, когда вам нужно указать их, но в этом случае следующий набор работ:

    "dnx451": { 
        "frameworkAssemblies": { 
        "System.Xml": "", 
        "System.Xml.Linq": "" 
        } 
    } 
    

Смотрите мой somewhat related question объяснить, почему frameworkAssemblies а не только dependencies.

Смежные вопросы