La raison de targetFramework
existence dans web.config
est d'éviter les problèmes de compatibilité entre les changements de rupture pour chaque version de .NET Framework. La différence entre targetFramework
sur compilation
y httpRuntime
appartient à chaque environnement de développement et de déploiement.
Selon Blog MSDN :
<compilation targetFramework="4.6" />
Sélectionne la version des assemblages de référence de .NET Framework qui sont utilisées lors de la compilation. (Remarque : Visual Studio exige que cet élément soit présent dans Web.config, même si nous l'insérons automatiquement).
Cet élément détermine la version de l'assemblage utilisée lors de la compilation pour créer les dépendances et les assemblages connexes du projet actuel.
<httpRuntime targetFramework="4.5" />
signifie que le projet actuel est conçu pour utiliser les assemblages du runtime .NET 4.5 sans recompiler les assemblages du projet existant dans la machine de déploiement avant de le charger en mémoire.
Par conséquent, nous pouvons conclure que le numéro de version défini sur targetFramework
sur httpRuntime
élément conçu pour maintenir la compatibilité entre le projet compilé et les assemblages disponibles lors de l'utilisation du runtime, en fonction de la version des fichiers runtime utilisée sur la machine cible.
Ainsi, dans votre cas, il ne s'agit pas d'un comportement erroné, le(s) créateur(s) du projet souhaite(nt) simplement maintenir la compatibilité d'exécution à la plus basse version d'exécution disponible dans la machine cible avec des caractéristiques similaires (c'est-à-dire la version 4.5), même si le projet a été compilé avec une version plus récente des assemblages .NET. La différence entre les versions 4.5 et 4.6 est relativement faible, ce qui fait que le maintien de la version d'exécution à 4.5 reste acceptable dans ce contexte.
Références connexes :
5 votes
Article de blog connexe blogs.msdn.microsoft.com/webdev/2012/11/19/