J’ai un projet WinJS précédemment construit sur Windows 8.1 à l’aide de VS 2013.
Récemment, j’ai mis à niveau ce projet vers Universal Windows 10 en créant un projet Javascript universel sous Windows 10, puis j’ai ajouté tous mes fichiers de l’ancien projet.
J’ai Windows Runtime Components et également Class Library pour SQLite.
J’ai ajouté Universal Windows Runtime Component et Universal Class Library et copié tous mes fichiers de l’ancien projet vers les emplacements respectifs.
D’une manière ou d’une autre, j’ai réussi à supprimer toutes les erreurs de construction.
J’ai installé tous les requirejs SQLite-net, SQLite pour Universal Windows Platform, Newtonsoft, etc.
Mais lorsque j’exécute l’application et appelle une méthode native dans Windows Runtime Component, cela génère des erreurs étranges telles que:
An exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.ni.dll but was not handled in user code.
Additional information: Could not load file or assembly 'Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.
La version de Newtonsoft est: 9.0.1
Mon fichier project.json de Windows Runtime Component contient les éléments suivants:
{ "dependencies": { "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0", "Newtonsoft.Json": "9.0.1" }, "frameworks": { "uap10.0": {} }, "runtimes": { "win10-arm": {}, "win10-arm-aot": {}, "win10-x86": {}, "win10-x86-aot": {}, "win10-x64": {}, "win10-x64-aot": {} } }
Ma version de Visual Studio est:
J’ai essayé d’enlever tout le JSON de Newtonsoft et de le réinstaller mais pas de chance.
J’ai fait une démonstration de base et reproduit ce problème. Il semble que le composant WinRT n’a pas réussi à trouver l’assembly correct de Newton.Json
. Temporairement, la solution consiste à append manuellement le fichier Newtonsoft.json.dll
. Vous pouvez y parvenir en procédant comme suit:
Cliquez avec le bouton droit de la souris sur Références-> Ajouter une référence-> Parcourir …-> Rechercher C: \ Utilisateurs \ .nuget \ packages \ Newtonsoft.Json \ 9.0.1 \ lib \ portable-net45 + wp80 + win8 + wpa81 \ Newtonsoft.json. dll-> Cliquez sur le bouton Ajouter.
Reconstruisez votre projet de composant d’exécution et exécutez-le. Cette erreur devrait être partie.
J’ai eu le même problème aussi, pour résoudre ce problème, vérifiez dans les références de votre projet si la version de Newtonsoft.Json a été mise à jour (probablement pas), puis supprimez-la et vérifiez dans votre Web.config ou App.config element dependAssembly a été mis à jour comme suit:
Après cela, reconstruisez à nouveau le projet (la DLL sera remplacée par la version correcte)
J’ai résolu ce problème en ajoutant Newtonsoft.Json au NuGet du projet de démarrage.
Il y a quelque temps, j’ai rencontré un problème similaire avec une nouvelle application ASP.NET Core. Une des bibliothèques référencées utilisait une version de Newtonsoft.Json inférieure à 9.0.0.0. J’ai donc mis à niveau la version de cette bibliothèque et le problème a été résolu. Vous ne savez pas si vous pourrez faire la même chose ici
J’ai rencontré des problèmes similaires avec mes projets ASP.NET Core. Qu’est-ce qui se passe, c’est que le fichier .config dans le dossier bin / debug est généré avec ceci:
Si je change manuellement le second bindingRedirect en ceci, cela fonctionne:
Je ne sais pas pourquoi cela se produit.
J’utilise Visual Studio 2015 avec .Net Core SDK 1.0.0-preview2-1-003177.
J’utilise Visual Studio 2013 Update 2 . Dans mon cas, j’ai un projet Web, un projet Web Api et un projet de test unitaire ainsi que d’autres bibliothèques de classes dans une solution unique.
J’ai passé quelques jours à résoudre le problème. Vous trouverez ci-dessous la solution étape par étape que j’ai trouvée.
Newtonsoft.Json
de la solution en utilisant la requête ci-dessous à partir de la console de Package Manager (pour l’obtenir Voir> Autre fenêtre> Console de Package Manager ). désinstaller-package newtonsoft.json -force
Newtonsoft.Json
partir de la console du gestionnaire de packages paquet d’installation newtonsoft.json
Newtonsoft.Json
, j’ai rencontré l’erreur suivante. Le package “Newtonsoft.Json 10.0.3” nécessite la version 2.1 ou supérieure du client NuGet, mais la version actuelle de NuGet est “2.8.50313.46”.
Outils> Extensions et mises à jour …> Dans le volet de gauche .. sélectionnez Mises à jour> Galerie Visual Studio .
Mettez à jour l’ extension du gestionnaire de paquets NuGet . Suivez les étapes à venir.
Visual Studio prendra un redémarrage après cela.
Exécutez l’étape 6 à nouveau.
Après l’installation, packages.config sera ajouté avec cette ligne ci-dessous
Après l’installation, web.config sera ajouté avec les lignes ci-dessous
Il s’exécutera avec succès s’il n’y a pas d’autre erreur.
Il nous a fallu une journée pour résoudre ce problème. La solution consiste à forcer votre service Web à utiliser la version 11.0.0 dans votre fichier web.config.
Dans mon cas, il y avait un problème avec le fichier de configuration web.config sur ma machine lorsque j’ai mis à jour la version de newton VS a automatiquement corrigé mon fichier web.config pour qu’il pointe vers la nouvelle version. Lorsque je l’ai chargé en production, le fichier Web.config existant pointait vers l’ancienne version.
Une fois que j’ai mis à jour le fichier web.config, il a recommencé à fonctionner.
A pu résoudre ce problème dans mon projet asp.net mvc en mettant à jour ma version de Newton.Json (ancienne version = 9.0.0.0 vers la nouvelle version 11.0.0.0) du gestionnaire de packages usign.
Je pense qu’AutoCAD a détourné le mien. La solution qui a fonctionné pour moi était de le récupérer. Je l’ai obtenue à l’ adresse https://forums.autodesk.com/t5/navisworks-api/could-not-load-file-or-assembly-newtonsoft-json/td-p/7028055?profile.language=fr – ouais, Internet fonctionne de manière mystérieuse.
// in your initilizer ... AppDomain currentDomain = AppDomain.CurrentDomain; currentDomain.AssemblyResolve += new ResolveEventHandler(MyResolveEventHandler); ..... private Assembly MyResolveEventHandler(object sender, ResolveEventArgs args) { if (args.Name.Contains("Newtonsoft.Json")) { ssortingng assemblyFileName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Newtonsoft.Json.dll"; return Assembly.LoadFrom(assemblyFileName); } else return null; }