web-dev-qa-db-fra.com

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 à coup, j'obtiens l'erreur suivante lorsque j'essaie de publier (Release build) n'importe quel projet dans la solution:

Le fichier d'actifs 'C:\example\obj\project.assets.json' n'a pas de cible pour '.NETFramework, Version = v4.5.2/win7-x86'. Assurez-vous que la restauration a été exécutée et que vous avez inclus "net452" dans TargetFrameworks pour votre projet. Vous devrez peut-être également inclure "win7-x86" dans les RuntimeIdentifiers de votre projet.

J'ai vérifié dans le project.assets.json fichiers, j'ai:

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

et

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

Dans les fichiers * .csproj, j'ai:

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

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

N'ont apporté aucune modification à la configuration des projets. La seule chose est que j'ai mis à jour VS2017 vers la dernière version aujourd'hui, 15.6.3. Cela pourrait-il provoquer un problème?

20
Paolo B

Selon le blog Microsoft (qui, bizarrement, mon compte n'a pas l'autorisation de publier), cela n'est pas un bogue, et est entièrement causé par ReSharper. Si vous désactivez cela, le problème disparaît.

Errr, un problème: je reçois cette erreur et je n'ai pas ReSharper.

Après un beaucoup de chasse, j'ai trouvé la raison pour laquelle j'obtenais l'erreur sur mon projet .Net Core qui avait été mis à niveau de 1.0 à 2.1.

Lors de l'exécution de mon projet en mode Debug ou Release, tout a bien fonctionné, mais lorsque j'ai essayé de publier sur Azure, 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'aie mis à jour la version de .Net Core vers 2.1 dans Project\Properties et mis à niveau les différents packages de nuget, il y avait un endroit qui n'avait pas détecté cette modification ... le fichier de profil de publication.

Je devais entrer dans le Properties\PublishProfiles dans ma solution, ouvrez le fichier .pubxml relatif à la façon dont je publiais vers Azure et modifiez ce paramètre de netcoreapp2.0 à netcoreapp2.1:

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

Ridicule, hein?

Je souhaite que les messages d'erreur Microsoft donnent un indice sur la source de problèmes comme celui-ci.

18
Mike Gledhill

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

18
Ferro

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.

4
Paul

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.

0
TJ Rockefeller