2010-07-23 56 views
51

Me estoy poniendo esta excepción:¿Cómo soluciono el error de IIS "compilerVersion"?

System.Configuration.ConfigurationErrorsException: El valor para el atributo 'compilerVersion' en las opciones del proveedor debe ser 'v4.0' o más adelante si está compilando para la versión 4.0 o posterior del .NET Framework.

¿Qué debo hacer para resolver esto?

Respuesta

56

tuve un problema similar y tuvo que decirle a ASP.NET en configuración para utilizar el compilador 3.5 de la siguiente manera modificando Web.config.

He copiado y pegado lo siguiente de mi código. Tienes que cambiar el valor = "v3.5" al valor = "v4.0". Las cadenas del compilador tipo también pueden cambiar.

<configuration> 

    <!-- ... other configuraiton stuff ... --> 

    <system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4"> 
     <providerOption name="CompilerVersion" value="v3.5"/> 
     <providerOption name="WarnAsError" value="false"/> 
     </compiler> 
     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4"> 
     <providerOption name="CompilerVersion" value="v3.5"/> 
     <providerOption name="OptionInfer" value="true"/> 
     <providerOption name="WarnAsError" value="false"/> 
     </compiler> 
    </compilers> 
    </system.codedom> 

</configuration> 

En mi caso, el compilador 2.0 se estaba utilizando en lugar de 3.5. Estaba trabajando en un proyecto de sitio web IIS 7, ASP.NET.

Es posible recoger información adicional de:

+0

Gracias por esta respuesta. Funcionó muy bien. – Tarik

+1

4igi respuesta tiene la respuesta C# 4.0. – pauloya

+1

De esta manera funciona tanto para C# como para VB.NET. ¡Gracias! – Corgalore

9

Poner esta sección de web.config

<compilation debug="true" strict="true" explicit="true" targetFramework="4.0" /> 
+0

No te vi que respondiste tu propia pregunta antes de terminar de llenar la mía :) –

+0

Sí, pero la tuya era más completa. –

+2

También es necesario eliminar en 4.5. – James

27

Esto debería ayudar

<configuration> 
<!-- --> 
<system.codedom> 
<compilers> 
    <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" 
    type="Microsoft.CSharp.CSharpCodeProvider,System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
    <providerOption name="CompilerVersion" value="v4.0"/> 
    <providerOption name="WarnAsError" value="false"/> 
    </compiler> 
</compilers> 
</system.codedom> 
<!-- --> 
</configuration> 
1

En mi caso fue un sitio secundario bajo el Sitio Web predeterminado y, aunque la configuración por defecto del sitio web se fijaron en ASP.NET 4.0, el archivo web.config se fijó para el 2.0 y 3.5. Cambiar el archivo web.config para usar 4.0 lo solucionó. Use esto como referencia: ASP.NET 4 Breaking Changes

+0

en mi caso esto ayudó mucho, ¡gracias! –

25

En mi caso, estaba tratando de ejecutar una aplicación secundaria utilizando 4.0, pero la aplicación principal necesitaba usar 2.0. Envolviendo la información de los compiladores en el web.config principal con una etiqueta <location path="." inheritInChildApplications="false">, se corrigió.

Web.config Padres:

<location path="." inheritInChildApplications="false"> 
    <system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4"> 
     <providerOption name="CompilerVersion" value="v3.5" /> 
     <providerOption name="WarnAsError" value="false" /> 
     </compiler> 
    </compilers> 
    </system.codedom> 
+0

Éste ayudó mi situación. No tuvimos ningún problema con una versión .Net mezclada en el servidor hasta que se ejecutó un MSI del proveedor. –

+1

Bien ... esto solucionó mi problema (el sitio ASP.NET 4 es hijo de ASP.NET 2.0) –

1

Habíamos accidentalmente copiar-pegar Web.config en C: \ inetpub \ wwwroot. Este Web.config accidentalmente copiado pegó una configuración que no coincide y causó el error compilerVersion para nosotros. Eliminar el Web.config resolvió el problema para nosotros.

Cuestiones relacionadas