Visual Studio 2017 - impossible de charger le fichier ou l'assembly 'Système.De l'exécution, Version=4.1.0.0' ou une de ses dépendances
Je suis à l'aide de Visual Studio 2017 et suis en train de créer un .Net Standard de 1,5 bibliothèque et de l'utiliser dans un .Net 4.6.2 nUnit projet de test.
J'obtiens l'erreur suivante...
Impossible de charger le fichier ou l'assembly 'Système.De L'Exécution, Version=4.1.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou une de ses
les dépendances. Le système ne peut pas trouver le fichier spécifié.
J'ai essayé ce qui suit:
- Référence Std bibliothèque de référence du projet. Erreur: donne-moi de l'erreur précédente.
- Créer un NuGet pkg pour mon Std bibliothèque de référence et que. Erreur: Le type de Système.La chaîne, qui attendent Système.Chaîne de caractères. C'est parce que le Système.Runtime fini par être référencé par le projet et il a des définitions pour tous les types standard.
- Référence NuGet pkg NetStandard.De la bibliothèque. Erreur: donnez-moi la même erreur que # ("Le type du Système.La chaîne, qui attendent Système.Chaîne de caractères"). REMARQUE: Avant je l'ai fait, j'ai effacé TOUS les packages NuGet du projet puis ajouté juste le nUnit et NetStandard.Paquets de bibliothèque (qui a installé des 45 autres paquets).
Est-ce un bug? Est-il un travail? Toute aide est appréciée.
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et il n'y a suggéré des solutions que j'ai trouvé travaillé.
Ma solution de ce problème a été:
Consultez App.config et les paquets.config pour voir si les versions correspondent.
À l'origine de mon appli.config contenus:
Mais les colis.config contenus:
J'ai modifié l'application.config d'entrée de match les paquets.config pour la nouvelleversion:
Après le changement, le problème a été résolu.
[MSTest][Discovery] Failed to discover tests from assembly Reason:Could not load file or assembly 'System.Reflection, Version=4.1.1.0 etc
Ce problème se produit lorsque vous faites référence à un .NET de projet Standard à partir d'un .NET 4.projet x: aucun des .NET Standard du projet de package nuget références sont amenés comme des dépendances.
Pour résoudre ce problème, vous devez vous assurer que votre .NET 4.x fichier csproj est pointé à la version actuelle des outils (au moins 14):
Ci-dessous ne devrait plus être nécessaire, il est fixé autour de VS 15,3:
Il y avait un bug connu dans VS2017, plus précisément dans NuGet 4.0.
Pour contourner le bug, vous aurez besoin d'ouvrir le .fichier csproj pour votre .NET 4.x projet et ajouter ce morceau de code:
NuGet 4.x apporte avec elle le "paquet de référence" -- pas plus de paquets.config -- mais le vieux 4.x canalisation n'a pas été entièrement mis à jour au moment de la VS2017 de lancement. L'extrait ci-dessus semble pour "réveiller" le système de construction pour correctement inclure des références de paquet de dépendances.
System.Runtime
de référence à partir d'eux.Je rencontre ce problème récemment et j'ai essayé beaucoup de choses mentionnées dans ce fil et d'autres. J'ai ajouté le package de référence pour
"System.Runtime"
par le gestionnaire de package nuget, fixe la liaison redicts dansapp.config
, et assurez-vous queapp.config
etpackage.config
ont la même version pour l'assemblée. Cependant, le problème a persisté.Enfin, j'ai enlevé le
<dependentAssembly>
balise pour le montage et le problème dissappeared. Donc, essayez de supprimer les éléments suivants dans votreapp.config
.Edit:
Après que j'ai mise à jour .NET framework pour 4.7.2, le problème refait surface. J'ai essayé l'astuce ci-dessus, mais il ne fonctionne pas. Après perdre de nombreuses heures, j'ai réalisé que le problème se produit à cause d'un vieux
System.Linq
de référence dans l'app.config. Par conséquent, de supprimer ou de mettre à jour tous Linq références aussi à se débarrasser de ce problème.xunit System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.1.2.0
après la mise à niveau de mes projets à 4.7.2Confiance en moi, je ne suis pas une blague.
Supprimer tout le Système.Les dépendances d'exécution de votre application.config et il va commencer à travailler.
J'ai résolu cette erreur en faisant référence à l' NetStandard.Bibliothèque et suivants app.config Fichier dans le NUnit-Projet.
Modifier
Si rien d'autre que
System.Runtime
,System.Reflection
ouSystem.Runtime.InteropServices
est manquant (par exempleSystem.Linq
), puis il suffit d'ajouter une nouvelledependentAssembly
nœud.Edit 2
Dans les nouvelles Versions de Visual Studio (de 2017 à 15,8 je pense), il est possible que le Studio crée l'application.Fichier de configuration. Il suffit de cocher la Auto-générer de liaison redirige Case à cocher dans Projet-Propriétés - Application.
Modifier 3
Auto-générer de liaison redirige ne fonctionne pas bien avec .NET Classlibraries.
En ajoutant les lignes suivantes à la csproj fichiers résout ce et un de travail .le fichier config pour le Classlibary sera généré.
<dependentAssembly>
nœuds du Système.Runtime..Je l'ai fixée par la suppression de mon
app.config
avecentrées.
app.config
a été automatiquement ajouté (mais pas nécessaire) au cours de refactoringNous avons constaté que
AutoGenerateBindingRedirects
pourrait être la cause de ce problème.Observées: le même projet de ciblage
net45
etnetstandard1.5
a été avec succès construit sur une machine et n'a pas de construire sur l'autre. Des Machines de différentes versions du framework est installé (4.6.1 - succès et 4.7.1 - échec). Après la mise à niveau du cadre sur la première machine à 4.7.1 le construire aussi échoué.Auto binding redirects
est une fonctionnalité de.net 4.5.1
. Chaque fois que nuget détecte que le projet est transitivement référencement des versions différentes de la même assemblée, il va générer automatiquement le fichier de config dans le répertoire de sortie redirection de toutes les versions de la plus haute version requise.Dans notre cas, il a été une nouvelle liaison toutes les versions de
System.Runtime
àVersion=4.1.0.0
..net 4.7.1
livré avec un4.3.0.0
version de l'exécution. Afin de redirection de liaison a été la cartographie pour une version qui n'était pas disponible dans une version contemporaine de cadre.Le problème a été résolu avec la désactivation automatique de la liaison des redirections pour 4,5 cible et de partir pour .net de base seulement.
Ce problème se produit lorsque vous faites référence à un .NET de projet Standard à partir d'un .NET 4.projet x: aucun des .NET Standard du projet de package nuget références sont amenés comme des dépendances.
J'ai résolu par l'ajout du Système.Runtime
4.3
et NETStandard.Paquet de bibliothèque et !!important!! J'utilise refactoriser outil pour examiner le System.Runtime.dll version, Il est4.1.1.1
pas4.3
puis ajouter un bindingRedirect dans .configJ'ai eu un problème avec cela, dans une NUnit 2.6.4 projet de ciblage dotnet framework 4.6.2. J'ai couru dans la
System.Runtime FileNotFound
erreur en essayant d'utiliser Humanizer.J'ai corrigé mon erreur en installant NetStandard.Bibliothèque dans mon projet de test d'unité.
Je me suis retrouvé dans cette situation à plusieurs reprises avec mon .NET 4.6.1 site web. J'ai créé le problème à chaque fois quand j'ai ajouté un renvoi à un autre .NET de Base du projet. Lors de la construction, Visual Studio correctement m'a averti que de telles croix-cadre de références ne sont pas valides, et j'ai vite supprimé la référence du projet. Le projet, construit très bien, après cela, mais le Système.Erreur d'exécution est apparu lors de l'accès au site web et refusé de s'en aller.
Le correctif à chaque fois était boiteux, mais efficace: j'ai supprimé le répertoire du projet et retéléchargé de contrôle de code source. Même s'il n'y a pas de différence entre avant et après, j'ai été en mesure de construire le projet et accéder à la page avec aucune plainte.
Couru en ce moment un projet de tests Unitaires après l'ajout de MsTest V2 via Nuget. Renommage de l'app.config (donc pour effet de le supprimer) a fait l'affaire pour moi.
Après avoir lu tous les posts, je ne sais pas encore pourquoi, désolé!
J'ai résolu le problème en supprimant le Package Nuget
System.Runtime
et de le réinstallerJ'ai eu un problème similaire dans VS 2017 15.45 - j'ai trouvé quand j'ai vérifié que même si le projet compilé et exécuté, il est venu avec un système.IO.FileNotFoundException à l'égard du Système.L'exécution lorsque j'ai essayé d'accès TPL Dataflow objets.
Quand j'ai vérifié les projets de la solution, l'un d'eux (celui du haut) était manquant le Système.Package d'exécution utilisés par les projets sous-jacents. Une fois que je l'ai installé à partir de Nuget et tout a fonctionné correctement.
J'ai essayé toutes les solutions ici, mais en vain. Finalement, je l'ai résolu par l'ouverture de la nouvelle csproj fichier et l'ajouter manuellement à la section suivante:
Je suis en utilisant ASP.Net de BASE 2.1 et j'ai eu cette erreur quand j'ai couru en sélectionnant un .csproj à partir d'une liste d'environ 40 dans une grande repo. Quand j'ai ouvert le fichier csproj individuellement, l'erreur a été résolue. Quelque chose avec la façon dont le programme a été lancé était différent lorsque le csproj a été ouvert.
Ce problème a plusieurs causes... dans mon cas, le problème était que c'était dans mon web.config un tag en ajoutant le Système.Exécution de l'assemblée:
mais un paquet a également ajouté la même assemblée que la dépendance avec d'autres version:
enlever le "ajouter" assemblage de balise à partir de mon site web.config résolu le problème.
- Je résoudre ce problème en passant .NET 4.7.2 => .NET 4.5.2 et puis passer à 472.
Ainsi, dans certains cas, cette erreur se produit car le gestionnaire de package incapable de résoudre les dépendances
Dans l'app.config ou web.config ajouter
Si elle travaille déjà, puis il devrait y avoir une Application.config changement. Annuler App.config a fonctionné pour moi.