web-dev-qa-db-fra.com

Cette application nécessite l'une des versions suivantes de .NET Framework

J'essaie de migrer notre application vers la version plus récente de .NET Framework. De la version actuelle de 4.5 à 4.6.1 

La raison pour laquelle nous migrons vers la version 4.6.1 au lieu de 4.7 ou 4.6.2 est que la plupart de nos utilisateurs et développeurs disposent de la mise à jour Windows 10 novembre et sont basés sur les informations de .NET Framework Configuration requise , .NET Framework 4.6.1 doit être préinstallé par défaut dans cette version de Windows. Cela ne laisserait aucun besoin aux utilisateurs de télécharger tout type de mise à jour.

Le problème auquel nous sommes confrontés est que, chaque fois que nous exécutons notre application, le message d'erreur suivant s'affiche:

Cette application nécessite l’une des versions suivantes de .NET Framework: .NETFramework, Version = v4.6.1

Voulez-vous installer cette version .NET Framework maintenant?

J'ai également vérifié quelle version de .NET Framework est répertoriée dans le registre après l'article de MSDN: Comment: déterminer quelles versions de .NET Framework sont installées

La valeur de registre est 394806 , ce qui devrait être même .NET Framework 4.6.2

Des idées pour résoudre ce problème et quelle en est la cause? Je ne veux pas que les utilisateurs soient obligés d'installer la mise à jour car elle devrait de toute façon faire partie du système d'exploitation.

5
Kajiyama

Nous avons récemment rencontré un problème similaire. Lors du démarrage d'un service, nous avons reçu l'erreur "Cette application nécessite l'une des versions suivantes de .NET Framework:"

Nous avons découvert que le problème était notre incompréhension sur la façon de mettre à jour le fichier app.config.

Nous avions modifié le fichier app.config pour définir <supportedRuntime version="v4.7" sku=".NETFramework,Version=v4.7" />

Mais aurait dû le régler sur <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7" />

Nous avons mal défini la version principale de .NET comme expliqué dans https://docs.Microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/startup/supportedruntime-element#version

9
Skyler Nesheim

J'ai eu cette même erreur aujourd'hui avec SourceTree après avoir appliqué une nouvelle version de Windows Insider, à la différence que SourceTree nécessitait la version 4.7.1.

J'ai trouvé que le nombre version était correct en tant que 4,0 mais, d'après la réponse de @Skyler Nesheim, j'ai modifié l'autre attribut, sku, de
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.1" /> to be
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> et cela a fonctionné.

2
Eugenio Miró

Pourquoi ne pas compiler votre application pour cibler la bibliothèque .NET Standard ? Cela élimine le besoin d'une version spécifique du framework .NET, mais autorise toute installation du framework .NET qui implémente la bibliothèque standard .NET spécifique pour exécuter l'application.

0
rickvdbosch