Impossible de charger le fichier ou l’assembly System, version = 2.0.5.0 dans l’application .NET 4 MVC 4

Je cherchais depuis longtemps, je ne trouve rien d’aide. Voici l’exception que je reçois:

Could not load file or assembly 'System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047) Exception Details: System.IO.FileLoadException: Could not load file or assembly 'System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047) Stack Trace: [FileLoadException: Could not load file or assembly 'System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)] StructureMap.Graph.PluginGraph..ctor() in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\Graph\PluginGraph.cs:41 StructureMap.PluginGraphBuilder..ctor() in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\PluginGraphBuilder.cs:22 StructureMap.InitializationExpression..ctor() in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\InitializationExpression.cs:22 StructureMap.ObjectFactory.Initialize(Action`1 action) in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\ObjectFactory.cs:47 ... 

Cette application fonctionne correctement sur le serveur de test mais lève cette exception sur le serveur de production. Comme vous pouvez le constater, le code StructureMap est à l’origine de l’exception.

J’ai dû convertir cette application en .NET 4 à partir de la version 4.5, car la version 4.5 n’était pas installée sur le serveur de production. Après la conversion, l’application fonctionne toujours correctement sur mon ordinateur local et sur le serveur de test.

J’ai déjà défini True Local Copy sur l’assembly System, mais comme la version référencée est 4.0.0.0 et non 2.0.5.0, cela ne fait aucune différence.

Faites-moi savoir si d’autres informations sont nécessaires. Toute aide que vous pourriez être en mesure de fournir est appréciée.

Assurez-vous que votre framework .NET est corrigé. Microsoft a publié des correctifs vers .NET pour permettre aux bibliothèques de classes portables de trouver correctement le runtime approprié ( KB2468871 ). Si vous voyez l’exception ci-dessus (ou quelque chose du genre), cela signifie que vous manquez les derniers correctifs du framework .NET.

Editez le fichier web.config pour supprimer la référence, qui n’est pas requirejse pour un fonctionnement normal:

1 – Ouvrez le fichier web.config à la racine de votre site

2 – Recherchez la ligne suivante et commentez-la (): xxxxx-est votre nom d’assembly.

  

3 – Enregistrez et fermez le fichier web.config et réessayez.

J’ai trouvé que c’était “attendre” et “async” que cela me causait des ennuis.

J’avais Windows XP SP3 avec uniquement .NET 4.0, mais je devais le mettre à jour avec .NET 4.0.3 à l’aide de KB2600211 – cette mise à jour n’était pas automatique via Windows Update lorsque .NET 4.0.3 est sorti, car l’ordinateur est hors réseau.

Voici le lien vers la mise à jour:

https://www.microsoft.com/en-us/download/details.aspx?id=29053

Je veux juste partager une autre solution à partir de là qui résout le problème sur ma machine de développement: installer Silverlight 5 SDK (seulement 11,2 Mo au moment de la rédaction de cet article) était suffisant pour que tout fonctionne correctement.

Installez Microsoft® Silverlight® 5 SDK à partir du lien suivant. Cela résout et fonctionne bien pour moi.

Téléchargement du SDK