Selon this article, la version du .NET Framework qu'une application fonctionne sur est déterminé dans l'ordre suivant:
- fichier de configuration (
.config
)
- version Compilé
- Dernière version installée
Par défaut, si vous définissez l'infrastructure cible dans Visual Studio, vous avez un fichier .config
à vous déployer à côté de votre .exe
. Dans ce fichier .config
Visual Studio crée un élément <supportedRuntime>
qui a deux attributs: version
et sku
L'élément par défaut pour 4.5 .NET ressemble à ceci:
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
version
est la version du CLR pris en charge - mais ce n'est pas nécessairement la même chose que la version du .NET Framework car tous les .NET Frameworks de 4.0 à 4.7 utilisent le CLR 4.0.
Seule sku
(unité de gestion des stocks) spécifie la version exacte du .NET Framework pris en charge par votre application.
Selon this article, l'attribut sku
(contenant un numéro de version) est uniquement reconnu à partir du .NET Framework 4.0.
Comme une note de côté: .NET 3.5 a utilisé le sku
ainsi, mais seulement pour indiquer que vous soutenez la .NET Framework Client Profile (sku="client"
) qui n'existe plus depuis .NET 4.5.
La conclusion est:
Vous obtenez le premier message d'erreur, car le chargeur CLR 2.0 dans le .NET Framework 3.5 ne sait rien sur l'attribut sku
. Il sait seulement que vous demandez un .NET 4.0 CLR. (Si vous ne disposez pas d'un fichier .config
la version requise du CLR est compilé into the manifest de votre .exe
, qui dans votre cas est v4.0.30319
.)
seulement après avoir installé le .NET Framework 4.0 le CLR 4.0 loader lit maintenant l'attribut sku
et sait par conséquent que vous devez également installer .NET Framework 4.5. C'est pourquoi vous obtenez ces deux messages d'erreur.
A partir du site Web de téléchargement: Cette version de .NET Framework fonctionne côte à côte avec .NET Framework 3.5 et versions antérieures, mais effectue une mise à jour sur place pour .NET Framework 4. – DonBoitnott
Comment déployez-vous application? en utilisant le projet d'installation (projet de configuration de studio visuel) OU installshield OU quoi d'autre? il semble que vous avez sélectionné 4.0 dans la configuration requise et que votre application est construite sur 4.5? – Munawar
@Munawar Je ne déploie pas mon projet. Le fichier exe s'exécute directement sur la machine. – Ala