2013-03-03 10 views
6

Mam mały, ale głupi problem. Zacząłem pracować z MS Roslyn, a ja staram się robić przewodniku, ale bezpośrednio na początku wystąpił błąd ...Analiza składni z MS Roslyn

error CS0117: „Roslyn.Compilers.CSharp.SyntaxTree” nie zawierają Definicja "ParseCompilationUnit"

Nie rozumiem, dlaczego tak się stało ... może jeden z was miał ten sam problem.

My 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

Uważam, że jest to problem z przewodnikiem. Zamiast tego użyj "ParseText". –

Odpowiedz

5

Jaka jest data wymieniona w przewodniku pan następnego? Zmieniono nazwę z ParseCompilationUnit na ParseText na wrześniowe CTP. Jeśli poprzedni CTP był zainstalowany, możliwe, że ta instrukcja nie została poprawnie zaktualizowana po zainstalowaniu najnowszego CTP.

Polecam odinstalowanie i ponowne zainstalowanie CTP lub użycie naprawy.

+0

Dziękuję Kevin! To była informacja, której szukałem! Interesujące, że nie znalazłem nic o zmianie nazwy ... Nawet w tym celu skorzystałem z wersji online ze strony http://msdn.microsoft.com/en-us/vstudio/roslyn.aspx, to znaczy najnowszy ... ale nie, nie jest, jest od czerwca 2012 r., w katalogu instalacyjnym jest przewodnik z września 2012 r., z ParseText zamiast ParseCompilationUnit. – Anton

+0

Dzięki za wskaźnik, będę pracował nad aktualizacją internetowych! –

0

@Anton to shure, to najnowszy ... Możesz użyć Nuget do zainstalowania Roslyn.

Uruchom następujące polecenia w konsoli Menedżer pakietów: PM> Install-Package Roslyn

0

Install-Package Roslyn

Install-Package: Nie można znaleźć pakietu 'Roslyn' Na linii: 1 char: 2 + Instalacja-Opakowanie Roslyn + ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified (:) [Instalacja-Pakiet] Wyjątek + FullyQualifiedErrorId : NuGetCmdletUnhandledException, NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

PM>