126 votes

Le fichier d'assets obj \ project.assets.json n'a pas de cible - VS2017

À L'Aide De Visual Studio 2017, AspNetCore 1.1.2

Tout d'un coup je reçois des message d'erreur suivant lorsque j'essaie de publier (version Release) tout projet dans la solution:

Actifs fichier "C:\example\obj\project.assets.json" ne pas avoir une cible pour '.NETFramework,Version=v4.5.2/win7 x86'. S'assurer que la restauration a exécuter et que vous avez inclus 'net452" dans le TargetFrameworks pour votre projet. Vous pouvez aussi avoir besoin d'inclure des "win7 x86" dans votre projet RuntimeIdentifiers.

Avez vérifié dans l' project.assets.json fichiers, j'ai:

"targets": {
  ".NETFramework,Version=v4.5.2": {

et

"runtimes": {
  "win7-x86": {
    "#import": []
  }

Dans le *.csproj fichiers que j'ai:

  <PropertyGroup>
      <TargetFramework>net452</TargetFramework>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
      <PlatformTarget>x86</PlatformTarget>
  </PropertyGroup> 

Ont apporté aucun changement de config dans les projets. La seule chose c'est que j'ai mis à jour VS2017 à la dernière version aujourd'hui, 15.6.3. Ceci pourrait causer problème?

155voto

Mike Gledhill Points 2105

Selon le blog Microsoft (qui, bizarrement, mon compte n'a pas les permissions pour post), ce n'est pas un bug, et est entièrement causée par ReSharper. Si vous la désactivez, le problème disparaît.

Euh, un seul problème: j'obtiens cette erreur, et je n'ai pas de ReSharper.

Après un lot de chasse autour, j'ai trouvé la raison qui m'a l'obtention de l'erreur sur mon .Net de Base du projet qui avait été mis à niveau à partir de 1,0 à 2,1.

Lors de l'exécution de mon projet en mode Debug ou Release, tout a bien fonctionné, mais quand j'ai essayé de publier Azur, j'ai eu cette erreur:

Assets file '(mikesproject)\obj\project.assets.json' doesn't have a target for '.NETCoreApp,Version=v2.0'. Ensure that restore has run and that you have included 'netcoreapp2.0' in the TargetFrameworks for your project.

Bien que j'avais mis à jour la version de .Net de Base à 2,1 en Projet\Propriétés et mis à jour les packages nuget différents, il y avait une place qui n'avait pas pris ce changement... le Profil de publication de fichiers.

J'ai besoin d'aller dans l' Properties\PublishProfiles le dossier dans ma solution, ouvrez le .pubxml dossier relatif à la façon dont j'ai été la publication d'Azur, et de modifier ce paramètre à partir d' netcoreapp2.0 de netcoreapp2.1:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    . . . 
    <TargetFramework>netcoreapp2.0</TargetFramework>
    . . . 
  </PropertyGroup>
</Project>

Ridicule, hein ?

Je ne désire pas de messages d'erreur Microsoft a donné quelques indices sur la source de problèmes de ce type.

124voto

Ferro Points 299

Le redémarrage de Visual Studio a résolu l'erreur pour moi.

51voto

Paul Points 1110

Cliquez avec le bouton droit sur le fichier de projet, puis cliquez sur décharger. Cliquez ensuite avec le bouton droit sur le projet et rechargez.

3voto

TJ Rockefeller Points 576

Pour moi, le problème a finalement été que l'un de mes flux NuGet était en panne, donc un package n'était pas mis à jour correctement. Ce n'est que lorsque j'ai exécuté une restauration de package NuGet directement sur la solution que j'ai vu des messages d'erreur liés à mon flux NuGet être en panne.

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