質問

C#プロジェクトでVBコードを動的にコンパイルしようとしていますが、VBCodeProviderで問題が発生しています。 providerOptions辞書に入れているOptionInferフラグを尊重していないようです。

私のコードは次のようになります:

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

CompilerParameters.TreatWarningsAsErrorsをTrueに設定すると、次のエラーが表示されます。

  

「As」のない変数宣言   句;想定されるオブジェクトのタイプ。

ただし、&quot; Option Infer On&quot;動的ソースコードの上部にあるテキスト。

誰でも光を当てることができますか?間違ったproviderOptionsキーまたは値を使用していますか?他の場所に他の設定はありますか?

役に立ちましたか?

解決

回答がないため、Reflectorを調べて何が起こっているかを確認することにしましたが、(RedistVersionInfo.GetCompilerPathメソッドで)参照される唯一のプロバイダーオプションがCompilerVersionであることがわかりました。

代わりにCompilerParameters.CompilerOptionsメンバーを使用して、サンプルを動作させることができました。

それを行う方法がある場合、私はすべて耳です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top