json nuget - Votre projet ne référence pas le framework ".NETFramework, Version=v4.5".




v3 to (5)

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 est un fichier lock ou un fichier obj\project.assets.json (en fonction de votre version de VS) d'une version précédente, qui n'est pas supprimée lors d'un nettoyage, comme décrit ici .

La suppression manuelle du répertoire /obj est une solution de contournement rapide.

Si vous avez un "nouveau" projet (par exemple .NET Core ou projet netstandard créé dans VS 2017) et un "vieux" projet dans le même répertoire (par exemple projet .NET 4.6 créé dans VS 2015), il semble qu'ils se battront continuellement parce que ils utilisent tous deux le ./obj 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 obj différent. J'ai ajouté ceci à mon "vieux" csproj:

<PropertyGroup>
  <!-- Needed due to old project and new project in same directory: https://github.com/NuGet/Home/issues/5126 -->
  <BaseIntermediateOutputPath>obj_netfx\</BaseIntermediateOutputPath>
</PropertyGroup>

J'utilise VS 2015.

Votre projet ne référence pas le framework ".NETFramework, Version = 4.5". Ajoutez une référence à ".NETFramework, Version = 4.5" dans la section "frameworks" de votre projet.json, puis réexécutez la restauration NuGet.

J'obtiens cette erreur sur mes couches Data Access et Business Logic, peu après l'ajout à mon calque MVC. Les choses se passaient bien jusque-là, mais je ne sais pas ce qui a déclenché cette erreur. Voici mon projet.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é:

  1. Remplacer "dotnet5.4" par "net451" (et en le supprimant) comme trouvé dans cette réponse .

Le résultat est la même erreur.

  1. Remplacer "dotnet5.4" par "net45" et laisser le "net451". Cela entraîne une nouvelle erreur:

Votre projet.json n'a pas de section d'exécution. Vous devriez ajouter '"runtimes": {"win": {}}' à votre projet.json, puis relancer la restauration de NuGet.

J'ai essayé de faire comme cette erreur a suggéré et en ajoutant

"runtimes": {
    "win":  {}
  },

Cela m'a valu cette erreur, que je n'arrive pas à dépasser:

Votre projet.json ne liste pas 'gagner' comme une exécution ciblée. Vous devriez ajouter '"win": {}' dans votre section "runtimes" dans votre projet.json, puis relancer la restauration de NuGet.

J'ai déjà ajouté "gagner", et cela commence à se sentir comme un hareng rouge. Qu'est-ce que je fais en modifiant le projet.json directement, NuGet ne gère-t-il pas cela?


Aussi, j'ai trouvé aujourd'hui qu'il y avait un faux projet.lock.json qui causait ce problème pour moi. Une fois que j'ai supprimé le fichier, le problème est parti.


J'ai eu le même problème après la mise à jour à Visual Studio pour Mac 7.4 (build 1033):

Error: Your project is not referencing the "MonoAndroid,Version=v7.1" framework. Add a reference to "MonoAndroid,Version=v7.1" in the "frameworks" section of your project.json, and then re-run NuGet restore.

Je n'ai aucun fichier de projet json. Les conseils ici n'ont pas aidé non plus, donc j'ai dû trouver à la dure que j'ai dû installer le dernier SDK Android (Oreo 8.1) en plus de mon SDK cible (Nougat 7.1).


J'ai eu le même problème, et j'ai dû non seulement supprimer le contenu des dossiers bin et obj , mais aussi le répertoire .vs de la solution.


Pour une raison quelconque, System.Diagnostics ne prend pas en charge un moyen de diriger toutes les sorties de trace vers un seul auditeur. Si vous souhaitez que plusieurs sources soient dirigées vers le même écouteur, vous devez explicitement répertorier chaque source par son nom.

Dans un grand système avec de nombreuses dépendances, il est possible que vous ne connaissiez pas toutes les sources et que cela vous soit égal. Vous voulez juste que la sortie voie ce qui se passe sous les couvertures. Le fait de configurer individuellement des écouteurs pour chaque source rend l’utilisation de System.Diagnostics considérablement plus difficile à utiliser dans les grands systèmes.

non seulement log4net prend en charge un appender au niveau racine (écouteur), il prend également en charge la journalisation hiérarchique qui vous permet de configurer la journalisation pour un ensemble logique de sources en tant que groupe. Dans mon esprit, cela fait de log4net un choix évident.





.net json entity-framework visual-studio-2015 nuget