¿VBCodeProvider no respeta OptionInfer en providerOptions?
-
10-07-2019 - |
Pregunta
Estoy tratando de compilar dinámicamente algún código VB en mi proyecto C # y me encuentro con un problema con el VBCodeProvider. No parece estar honrando el indicador OptionInfer que estoy poniendo en el Diccionario de opciones del proveedor.
Mi código se ve así:
var providerOptions = new Dictionary<string, string>();
providerOptions.Add("CompilerVersion", "v3.5");
providerOptions.Add("OptionInfer", "True");
var provider = new VBCodeProvider(providerOptions);
Establezco mis CompilerParameters.TreatWarningsAsErrors en True, y aparece el siguiente error:
Declaración de variable sin un 'As' cláusula; tipo de objeto asumido.
Sin embargo, todo está bien cuando pongo " Option Infer On " texto en la parte superior de mi código fuente dinámico.
¿Alguien puede arrojar algo de luz? ¿Estoy usando la clave o el valor del proveedorOpciones incorrecto? ¿Hay alguna otra configuración en otro lugar?
Solución
Por falta de respuestas, decidí pasar por Reflector para ver qué estaba pasando, y resulta que CompilerVersion parece ser la única opción de proveedor a la que se hace referencia (en el método RedistVersionInfo.GetCompilerPath).
Pude hacer que el ejemplo funcionara usando el miembro CompilerParameters.CompilerOptions en su lugar.
Si ES una forma de hacerlo, soy todo oídos.