web-dev-qa-db-fra.com

Erreur: cet assemblage est construit par un runtime plus récent que le runtime chargé

J'ai téléchargé une application Web publiée (le code derrière les fichiers n'existe pas, combinée avec une dll dans un dossier bin) à partir de Windows Server 2008 où elle est hébergée et je l'ouvre avec Visual Studio lorsque je débogue cette application, elle affiche l'erreur suivante:

"Impossible de charger l'assembly, car celui-ci est créé par un moteur d'exécution plus récent que le moteur d'exécution actuellement chargé"

Je ne sais pas comment puis-je résoudre ce problème et tester l'application localement ... S'il vous plaît, aidez-moi.

14
Arun Rana

Cette erreur se produit lorsque le cadre DotNet que vous utilisez est de version plus ancienne que celle utilisée pour construire l’Assembly. Vous devez vérifier quelle version du framework est utilisée pour construire ces assemblys, puis utiliser la même version ou une version plus récente pour déboguer également.

20
Sachin Shanbhag

J'obtenais cette même erreur lors de l'exécution d'un programme d'installation pour un service Windows, même lors de l'exécution du programme d'installation sur le PC sur lequel le programme d'installation a été créé.

Il s'est avéré que, bien que le projet de service Windows ait été mis à jour vers .NET 4.5, le projet d'installation qui créait le programme d'installation était toujours configuré pour utiliser .NET 2.0.

Pour vérifier si le projet d'installation utilise une version plus ancienne de .NET que le projet à installer, dans l'explorateur de Visual Studio Solution :

  1. Développez le projet Setup ;

  2. Sous le projet d'installation, développez Dépendances détectées ;

  3. Sous Dépendances détectées, sélectionnez Microsoft .NET Framework et vérifiez la propriété Version . Sélectionnez la version .NET appropriée dans la liste déroulante.

  4. Reconstruisez le projet d'installation pour créer une nouvelle version du programme d'installation.

4
Simon Tewsi

Cette erreur peut avoir beaucoup d'autres raisons, aussi. J'ai eu le même problème, et rien ne m'a aidé jusqu'à ce que je tombe par hasard sur ceci: erreur TlbExp.exe: cet assembly est construit par un runtime plus récent

2
peregrin

Je viens de rencontrer ce problème lorsque l’Assemblée a été construite avec un framework cible de .NET 4 et que la v4.0.30319étaitinstallée sur le serveur et que d’autres applications 4.0 fonctionnaient correctement.

Le problème est dû au fait que l'application avait été créée à l'origine pour cibler la version 2.0 et que de nouveaux assemblys 4.0 ont été mis en place, mais pas le fichier app.config, que nous mettons généralement à jour séparément.

Cela signifie que l'attribut supportedRuntime n'a pas été mis à jour dans la configuration et a provoqué l'erreur. L'ajout de ce qui suit à app.config a résolu notre problème:

<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>

1
Danny

Vérifiez également le pool d'applications sous lequel ce site Web est exécuté. Il pourrait s'agir de framework 2.0 par défaut sur certains serveurs Windows plus anciens. Changez-le en framework 4.0.

0
Peter PitLock

L'une des références d'assemblys du projet peut être générée à l'aide d'une version plus récente de .net, vérifiez la version de chaque référence d'assembly et corrigez-la en conséquence.

0
Furqan Hameedi