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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top