Wie konfiguriere ich VS 2015, um Roslyns C# -Skriptfunktionen zu aktivieren?Wie aktiviere ich C# -Skripting in VS 2015?
Ich habe versucht, verschiedene Nuget-Pakete zu installieren, einschließlich der 1.0 und 1.1.0-Beta1-Versionen von Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.Scripting.CSharp, etc., aber ich kann keine von bekommen Die Beispiele, die ich online gefunden habe, funktionieren. Ich erhalte "type not found" -Fehler, d. H.
var scriptEngine = new ScriptEngine();
... schlägt fehl, weil der Typ "ScriptEngine" nicht gefunden wird.
Kann jemand als Rezept angeben, welche Nuget-Pakete installiert werden sollen, welche Anweisungen verwendet werden müssen usw., um Roslyn-Skripte zu implementieren?
UPDATE # 1:
Ich habe einige Fortschritte gemacht, aber immer noch Fragen. Ich bekomme eine Reihe von Compiler-Warnungen und dann eine TypeInitializationException, die offensichtlich auf eine nicht übereinstimmende Komponentenversion zurückzuführen ist.
Ich bin jetzt mit dem folgenden Beispielcode (von einem Test genommen), und es gibt keine fehlenden Typen:
using System;
using Microsoft.CodeAnalysis.Scripting.CSharp;
namespace RoslynScriptingTest {
class Program {
static void Main(string[] args) {
var script = CSharpScript.Create("1 + 2");
var fn = script.CreateDelegate();
var value = fn();
Console.WriteLine("value={0}", value.ToString());
}
}
}
Ich habe alle die nächtlichen Pakete geladen, die bei https://www.myget.org/F/roslyn-nightly/ zur Verfügung stehen.
Ich erhalte eine Reihe von Build-Warnungen, die auf Microsoft.CodeAnalysis, v1.1.0.0 verweisen.
Das Ausführen der EXE trotz der Warnungen führt zu der oben erwähnten TypeInitializationException. Basierend auf dem Stacktrace wird der TypeInitializationError durch einen Versionskonflikt für System.Reflection.Metadata.dll verursacht.
Ich bin mir nicht sicher, wohin ich von hier aus gehen soll. Ich verstehe nicht, wie die Scripting-bezogenen Pakete/Komponenten zusammenpassen. Ich habe einige Beiträge von Anfang dieses Jahres gesehen, in denen beschrieben wird, wie Roslyn vollständig gebaut wurde. Ich habe das nicht getan. Ist das notwendig?
Das erinnert mich an DLL-Hölle aus den alten Tagen.
Versuchte Night früher aber veraltet Beispiele hatte. Besseres Beispiel kompiliert, aber mit mehreren Warnungen: "Instanz des Analysators Microsoft.CodeAnalysis.Analyzers.InternalImplementationOnlyAnalyzer kann nicht erstellt werden von ... \ RoslynScriptingTest \ packages \ Microsoft.CodeAnalysis.Analyzers.1.1.0-beta1-20150725-01 \ analysers \ dotnet \ cs \ Microsoft.CodeAnalysis.Analyzers.dll: Die Datei oder Assembly 'Microsoft.CodeAnalysis, Version = 1.1.0.0, ...' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Das System kann die angegebene Datei nicht finden. " EXE löst eine TypeInitializationException in CSharpScript.Create() aus. –
Aktualisieren Sie dieses Paket auch nachts. – SLaks
Nicht sicher, welches Paket zu installieren oder wo es zu bekommen ist. Ich habe alles auf der Roslyn-Nightly-Site ausprobiert. Siehe Update Nr. 1 oben. Vielen Dank. –