2013-03-03 3 views
6

У меня есть проблема, но глупо. Я начал работать с MS Рослин, и я пытаюсь сделать Пошаговое руководство, а непосредственно в самом начале произошла ошибка ...Анализ синтаксиса с MS Roslyn

ошибка CS0117: «Roslyn.Compilers.CSharp.SyntaxTree» не содержит определение для 'ParseCompilationUnit'

Я не понимаю, почему это произошло ... возможно, у одной из вас была такая же проблема.

Мои Sourceode:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Roslyn.Compilers; 
using Roslyn.Compilers.CSharp; 
using Roslyn.Services; 
using Roslyn.Services.CSharp; 

namespace gettingstarted2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      SyntaxTree tree = SyntaxTree.ParseCompilationUnit(
       @"using System; 
       using System.Collections; 
       using System.Linq; 
       using System.Text; 

       namespace HelloWorld 
       { 
        class Program 
        { 
         static void Main(string[] args) 
         { 
          Console.WriteLine(""Hello, World!""); 
         } 
        } 
       }"); 

      var root = (CompilationUnitSyntax)tree.GetRoot(); 

     } 
    } 
} 
+0

Я считаю, что это проблема с прохождением. Вместо этого используйте 'ParseText'. –

ответ

5

Что дата упоминается в пошаговом руководстве были ниже? Метод был переименован из ParseCompilationUnit в ParseText для сентябрьского CTP. Если вы установили предыдущий CTP, возможно, что пошаговое руководство не было правильно обновлено при установке последнего CTP.

Я бы рекомендовал удалить и переустановить CTP или выполнить ремонт.

+0

Спасибо, Кевин! Это была информация, которую я искал! Интересно, что я ничего не нашел о переименовании ... Даже для этой цели я использовал онлайн-версию с http://msdn.microsoft.com/en-us/vstudio/roslyn.aspx, чтобы быть shure, то есть новейший ... но нет, это не так, это с июня 2012 года, в каталоге установки есть руководство, датированное сентябрем 2012 года, с ParseText вместо ParseCompilationUnit. – Anton

+0

Спасибо за указатель, я буду работать над обновлением онлайн! –

0

@ Антон, чтобы быть чистым, то есть самым новым ... Вы можете использовать Nuget для установки Roslyn.

Выполните следующую команду в Package Manager Console: PM> Install-Package Рослин

0

Install-Package Рослин

Install-Package: Не удалось найти пакет 'Рослин' В строке: 1 символ: 2 + Install-Package Roslyn + ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [Install-Package], исключение + FullyQualifiedErrorId : NuGetCmdletUnhandledException, NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

PM>

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