56 votes

ASP.NET 4.0: Comment corriger l'erreur IIS "'compilerVersion'"?

System.Configuration.ConfigurationErrorsException: la valeur de l'attribut 'compilerVersion' dans les options du fournisseur doit être 'v4.0' ou ultérieure si vous compilez pour la version 4.0 ou ultérieure du .NET Framework.

67voto

John K Points 13695

J'ai eu un problème similaire et avait à dire ASP.NET dans la configuration à utiliser l'3.5 compilateur comme suit en modifiant Web.config.

J'ai copié et collé à la suite de mon code. Vous devez changer la valeur="v3.5" value="v4.0". Le compilateur le type des chaînes peuvent aussi changer.

<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>

Dans mon cas, le 2.0 compilateur a été utilisé au lieu de 3,5. Je travaillais dans un IIS 7, ASP.NET projet de Site web.

Vous pourriez glaner des informations supplémentaires à partir de:

30voto

4igi Points 221

cela devrait aider

 <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>
 

27voto

James Lawruk Points 8106

Dans mon cas, j'essayais d'exécuter une application enfant en utilisant la version 4.0, mais l'application parent devait continuer à utiliser la version 2.0. Envelopper les informations du compilateur dans le fichier web.config parent avec une balise <location path="." inheritInChildApplications="false"> l'a corrigé.

Parent Web.config:

 <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>
 

9voto

Jonathan Allen Points 23540

Supprimer cette section de web.config

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

1voto

Marlon Points 165

Dans mon cas, il s'agissait d'un site enfant sous le site Web par défaut et bien que les paramètres de site Web par défaut aient été définis sur ASP.NET 4.0, le fichier web.config a été défini sur 2.0 et 3.5. Changer le fichier web.config pour utiliser 4.0 l'a corrigé. Utilisez ceci pour référence: ASP.NET 4 Breaking Changes

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X