VBCodeProvider não honrar OptionInfer em providerOptions?
-
10-07-2019 - |
Pergunta
Estou tentando compilar dinamicamente algum código VB no meu projeto C # e eu estou correndo em um problema com o VBCodeProvider. Ele não parece ser honrar a bandeira OptionInfer que eu estou colocando na providerOptions Dictionary.
Os meus olhares código como este:
var providerOptions = new Dictionary<string, string>();
providerOptions.Add("CompilerVersion", "v3.5");
providerOptions.Add("OptionInfer", "True");
var provider = new VBCodeProvider(providerOptions);
I meu CompilerParameters.TreatWarningsAsErrors como True, e eu recebo o seguinte erro:
Declaração de variáveis ??sem um 'As' cláusula; tipo de objeto assumido.
No entanto, tudo está bem quando eu coloco o texto "Option Infer On" no topo do meu código fonte dinâmica.
Alguém pode lançar alguma luz? Estou usando a chave providerOptions errados ou valor? Existe alguma outra configuração em algum outro lugar?
Solução
Por falta de respostas, decidi arado através do refletor para ver o que estava acontecendo, e verifica-se que CompilerVersion parece ser a única opção provedor que é referenciado (no método RedistVersionInfo.GetCompilerPath).
Eu era capaz de obter o exemplo de trabalho usando membro CompilerParameters.CompilerOptions vez.
Se houver é uma maneira de fazê-lo, eu sou todo ouvidos.