2013-10-16 1 views
2

Les exemples de code typiques utilisant CSharpCodeProvider passent le paramètre CompilerVersion. Code from here:Que se passe-t-il si je ne spécifie pas CompilerVersion avec CSharpCodeProvider et pourquoi la plupart des exemples le spécifient-ils?

var codeProvider = 
    new CSharpCodeProvider(
     new Dictionary<String, String> { { "CompilerVersion", "v3.5" } }); 

J'ai essayé de passer un vide dictionnaire et aussi essayé d'appeler le constructeur de CSharpCodeProvider et parameterless le résultat est le même.

Alors que se passe-t-il en interne si je ne spécifie pas `CompilerVersion? Pourquoi la plupart des échantillons le spécifient-ils à tout moment?

Répondre

2

La documentation indique qu'il l'obtient à partir du machine.config ou du web.config spécifié dans votre dossier de configuration de cadre.

Par exemple, mon Framework64/config/fichier web.config contient ceci:

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