J'utilise VS 2015.
Votre projet ne fait pas référence au framework ".NETFramework, Version = 4.5". Ajoutez une référence à «.NETFramework, Version = 4.5» dans la section «frameworks» de votre project.json, puis réexécutez la restauration NuGet.
J'obtiens cette erreur sur mes couches d'accès aux données et de logique métier, peu de temps après l'ajout à ma couche MVC. Les choses allaient bien jusque-là, mais je ne sais pas ce qui a déclenché cette erreur. Voici mon project.json:
{
"version": "1.0.0-*",
"description": "foo bar Class Library",
"authors": [ "foo bar" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"frameworks": {
"net451": { },
"dotnet5.4": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23516",
"System.Threading": "4.0.11-beta-23516"
}
}
}
}
Voici ce que j'ai essayé:
- Remplacement de "dotnet5.4" par "net451" (et suppression) comme indiqué dans cette réponse .
Le résultat est la même erreur.
- Remplacer "dotnet5.4" par "net45" et laisser le "net451". Cela entraîne une nouvelle erreur:
Votre project.json n'a pas de section runtimes. Vous devez ajouter '"runtimes": {"win": {}}' à votre project.json, puis réexécuter la restauration NuGet.
J'ai essayé de faire comme cette erreur l'a suggéré et d'ajouter
"runtimes": {
"win": {}
},
Cela m'a donné cette erreur, que je n'arrive pas à surmonter:
Votre project.json ne répertorie pas «win» comme runtime ciblé. Vous devez ajouter '"win": {}' dans votre section "runtimes" de votre project.json, puis réexécuter la restauration NuGet.
J'ai déjà ajouté "win", et cela commence à se sentir comme un hareng rouge. Que suis-je en train de modifier directement project.json, NuGet ne gère-t-il pas cela?
la source
Réponses:
Je viens de comprendre le problème. J'ai fini par cliquer sur
Restore Nuget Packages
au niveau de la solution et j'ai réussi à compiler monPCL
fichier, puis le reste de ma solution.J'espère que cela t'aides.
la source
J'ai eu le même problème et j'ai fini par devoir non seulement supprimer le contenu de
bin
et desobj
dossiers, mais aussi le.vs
répertoire de la solution.la source
J'ai eu le même problème - cela se produit toujours en utilisant Visual Studio 2017.3, qui utilise des fichiers .csproj au lieu de project.json. Fait intéressant, le message d'erreur contient toujours le texte "project.json".
Il semble que la cause de ce problème soit un fichier de verrouillage ou un
obj\project.assets.json
fichier (selon votre version de VS) d'une version précédente, qui n'est pas supprimé lors d'un nettoyage, comme décrit ici .La suppression manuelle du
/obj
répertoire est une solution rapide.Si vous avez un "nouveau" projet (par exemple .NET Core ou un projet netstandard créé dans VS 2017) et un "ancien" projet dans le même répertoire (par exemple, un projet .NET 4.6 créé dans VS 2015), il semble qu'ils se battront continuellement car ils utilisent tous les deux le
./obj
répertoire de différentes manières. Plus d'infos ici. .La solution de contournement msbuild consiste à faire en sorte que l'un de vos projets utilise un répertoire différent
obj
. J'ai ajouté ceci à mon "ancien" csproj:la source
J'ai trouvé qu'un project.lock.json non autorisé provoquait ce problème pour moi. Une fois que j'ai supprimé le fichier, le problème a disparu.
Voici une documentation sur project.lock.json.
Un autre conseil serait de vous assurer que project.lock.json est ignoré dans votre fichier git ignore et d'essayer un git clean complet. Assurez-vous de bien comprendre les implications d'un nettoyage Git avant de le faire.
la source
J'ai eu le même problème après la mise à jour vers Visual Studio pour Mac 7.4 (build 1033):
Je n'ai pas de fichiers de projet json. Les conseils ici n'ont pas aidé non plus, j'ai donc dû découvrir à la dure que je devais installer le dernier SDK Android (Oreo 8.1) en plus de mon SDK cible (Nougat 7.1).
la source
J'ai le même problème, mais j'ai résolu en ajoutant la bonne ressource de paquet de nugget à
vs2017-->tools-->options-->Nugetpacakge manager--->updated
l'URL de paquet appropriée.Reportez-vous à l'image ci-dessous
la source