2013-03-03 15 views
6

Ho un piccolo problema, ma stupido. Ho iniziato a lavorare con MS Roslyn, e sto cercando di fare la procedura dettagliata, ma direttamente all'inizio si è verificato un errore ...Analisi della sintassi con MS Roslyn

errore CS0117: 'Roslyn.Compilers.CSharp.SyntaxTree' non contiene un definizione di 'ParseCompilationUnit'

Non capisco perché è successo ... forse uno di voi ha avuto lo stesso problema.

mio 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

Credo che sia un problema con la procedura dettagliata. Usa invece 'ParseText'. –

risposta

5

Qual è la data menzionata nella procedura dettagliata stavi seguendo? Il metodo è stato rinominato da ParseCompilationUnit a ParseText per il CTP di settembre. Se hai installato un CTP precedente, è possibile che la procedura dettagliata non sia stata aggiornata correttamente quando hai installato l'ultimo CTP.

Si consiglia di disinstallare e reinstallare il CTP o utilizzare la riparazione.

+0

Grazie Kevin! Questa era l'informazione che stavo cercando! Interessante, che non ho trovato nulla sul rinominare ... Anche per questo scopo ho usato la versione online da http://msdn.microsoft.com/en-us/vstudio/roslyn.aspx per essere shure, cioè il il più recente ... ma no non lo è, è da giugno 2012, nella directory di installazione è una guida datata a settembre 2012, con il ParseText invece di ParseCompilationUnit. – Anton

+0

Grazie per il puntatore, lavorerò per aggiornare gli online! –

0

@Anton per essere shure, quello è il più recente ... È possibile utilizzare Nuget per installare Roslyn.

Eseguire il seguente comando nella console Package Manager: PM> Installa-Package Roslyn

0

Installare-Pacchetto Roslyn

Installare-Pacchetto: Impossibile trovare il pacchetto 'Roslyn' alla riga: 1 char: 2 + Pacchetto di installazione Roslyn + ~~~~~~~~~~~~~~~~~ + CategoriaInfo: Non specificato: (:) [Pacchetto di installazione], Eccezione + FullyQualifiedErrorId : NuGetCmdletUnhandledException, NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

PM>

Problemi correlati