Frage

Ich versuche, dynamisch einig VB-Code in meinem C # Projekt zu kompilieren und ich bin mit dem VBCodeProvider in ein Problem laufen. Es scheint nicht zu Ehren der OptionInfer Flagge werden, die ich im providerOptions Wörterbuch bin setzen.

Mein Code sieht wie folgt aus:

var providerOptions = new Dictionary<string, string>();
providerOptions.Add("CompilerVersion", "v3.5");
providerOptions.Add("OptionInfer", "True");
var provider = new VBCodeProvider(providerOptions);

Ich habe meinen CompilerParameters.TreatWarningsAsErrors auf True, und ich erhalte die folgenden Fehler:

  

Variablendeklaration ohne ‚A‘   Klausel; Typ des Objekts angenommen.

Allerdings ist alles gut, wenn ich den „Option Infer On“ Text an der Spitze meiner dynamischen Quellcode setzen.

Kann jemand etwas Licht? Bin ich mit den falschen providerOptions Schlüssel oder Wert? Gibt es irgendeine andere Einstellung woanders?

War es hilfreich?

Lösung

Aus Mangel an Antworten, entschied ich mich durch Reflector zu pflügen, um zu sehen, was los war, und es stellt sich heraus, dass Compiler der einzige Provider-Option zu sein scheint, die (in der RedistVersionInfo.GetCompilerPath Methode) verwiesen wird.

Ich konnte das Beispiel zum Laufen bringen, indem CompilerParameters.CompilerOptions Mitglied stattdessen verwenden.

Wenn eine Möglichkeit, es zu tun, ich bin ganz Ohr.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top