98 votes

Votre projet ne fait pas référence ".NETFramework,Version=v4.6.2" cadre de. Ajouter une référence à ".NETFramework,Version=v4.6.2" dans la "TargetFrameworks"

Je ne peux pas courir mes tests unitaires.

J'ai l'erreur suivante:

Votre projet ne fait pas référence ".NETFramework,Version=v4.6.2" cadre. Ajouter une référence à ".NETFramework,Version=v4.6.2" dans le "TargetFrameworks" propriété de votre fichier de projet, puis exécutez de nouveau NuGet de la restauration.

En app.config:

<startup>
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
</startup>

Dans Projet > Propriétés > Application > TargetFramework (.NET Framework 4.6.2)

Comment puis-je résoudre ce problème?

240voto

Larissa Savchekoo Points 1220

Veuillez prendre les prochaines étapes

  1. Nettoyer la solution
  2. Nettoyer le dossier "packages"
  3. Supprimer le dossier "bin"
  4. Supprimer le dossier "obj"

24voto

moudrick Points 304

J'ai vécu le même problème, mais avec v4.7.2. À savoir, j'ai continué à obtenir du journal de génération de message comme ceci:

error : Your project does not reference ".NETFramework,Version=v4.7.2" framework. Add a reference to ".NETFramework,Version=v4.7.2" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.

Malgré le fait qu'il semblait similaire, aucune des mesures proposées, qui a travaillé pour moi. Je voyais ce message après chaque version. Rien ne semblait pouvoir l'aider.

En fait, le problème était lié à ce que, à cause de la migration, j'ai dû mettre deux projets dans un dossier de code. L'un d'eux a été ciblée sur les .Net de Base, l'autre au .Net Framework, tous deux référencés même .Net bibliothèques Standard. Apparemment, ils partagent le même obj le dossier où Noyau projets mis de l' project.assets.json le fichier. En fait, exactement ce fichier interferres avec le projet de Cadre de la prévention de ses normal construire. Semble, même si vous avez effectué à Migrer à partir de paquets.config pour PackageReference... qui a été recommandé comme l'un des solution possible.

Vous pouvez essayer de résoudre le problème en mettant le bout de code suivant dans votre projet de Cadre de fichier:

<Project>
  ...
  <PropertyGroup>
    <BaseOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/bin</BaseOutputPath>
    <BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath>
  </PropertyGroup>
  ...
</Project>

Il a immédiatement fonctionné pour moi, il est seulement plus tard, quand j'ai lu avec attention pourquoi nous en avons besoin et pourquoi il fonctionne. Façon inattendue, j'ai trouvé dans la partie 2 de la Migration d'un Exemple d'Application WPF, pour .NET de Base 3 en vertu de Faire assurer la .NET Framework projet encore construit section. BaseOutputPath et BaseIntermediateOutputPath msbuild variables peuvent y être trouvés, vous ne savez pas si ils sont bien documentés n'importe où.

14voto

tanuk Points 11

Ce qui m'est arrivé lors de l'ouverture d'un VS2015 projet dans VS2017. La suppression de l' project.assets.json de la obj le dossier a fait l'affaire.

De toute façon, le Cadre du message était manquante dans le fichier, je n'ai pas l'ajouter là que, est venu avec de le supprimer.

5voto

Pale Ale Points 69

I-voté Larissa, mais j'ai pensé qu'il pourrait être utile de savoir comment je suis arrivé dans cette. J'ai ajouté un .net standard fichier de projet pour mon build (nous cible de beaucoup de plates-formes) et il a produit les débris trouvés dans le dossier obj. Lorsque le android santé mentale construire est venu autour, il l'a jeté sur le dossier obj. Ma solution a été de nettoyer ce dossier comme une pré-étape de génération. C'est un problème difficile, car il a été fonctionne très bien depuis des années...l'aiguille de répondre à la botte de foin.

1voto

ebol2000 Points 23

J'ai couru dans la même chose avec .net 4.71. Dans mon cas, j'ai simplement migré à partir de paquets.config de références" par

Migrer à partir de paquets.config pour PackageReference

... et il a fixé mon problème. Pour moi, j'allais le faire quand même, donc, si vous allez de cette façon, déjà, je venais de sauter au-dessus et de migrer vers des références de package.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X