Ich benutze Roslyn Version 1.3.2 von Nuget in meinem Projekt. Zuerst habe ich versucht, diese Codes zu verwenden, um meinen Code formatieren:Wie verwendet man Formatter.Format (SyntaxNode, Workspace) in Roslyn?
var root = CSharpSyntaxTree.ParseText("filepath").GetRoot();
var workspace=MSBuildWorkspace.Create();
node=Formatter.Format(root,workspace);
Und es IOException werfen, wenn die Ausführung MSBuildWorkspace.Create():
konnte nicht Datei oder Assembly ‚laden Microsoft.Build, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a 'oder eine seiner Abhängigkeiten. Die angegebene Datei wurde vom System nicht gefunden.
Dann habe ich versucht buildtools von Nuget zu installieren, da diese Frage sagte: MSBuildWorkspace.Create() throws exception
Und ich viele Fehler, so dass ich es deinstallieren und alle seine Dateien entfernen. Aber wenn ich versuche, MSBuildWorkspace.Create() aufzurufen, wird keine IOException ausgelöst. Ich habe keine Ahnung, wie das funktioniert.
Leider ist die SyntaxNode noch nicht formatiert werden, nachdem ich Formatter.Format genannt, auch wenn es keine Ausnahme oder eine Warnung oder Fehler überhaupt.
Eine weitere Sache, ich kann leicht etwas Code in einer Standalone-Konsolenanwendung formatieren, ohne buildtools oder IOException. Sie verwenden die gleichen Codes. Warum ist das mit meinem Projekt nicht vereinbar?
Also, was ist der richtige Weg, das zu verwenden, besser mit dem BuildTools-nugget-Paket?
Vielen Dank für Ihre Informationen, und ich werde es versuchen, wenn ich zur Arbeit gehen, works.Thanks –
es eine Menge! –