62 votes

Un assembly spécifié dans le manifeste des dépendances d'application (...) est introuvable

J'ai mis à jour Microsoft.AspNetCore à partir de la version 2.0.3 de 2.0.5 et mon WebAPI projet, bien que l'exécution avec succès localement, ne parvient pas à démarrer en production (IIS). Tout allait bien dans la production jusqu'à ce que cette mise à niveau. Le message d'erreur produite dans le répertoire des journaux est comme suit:

Error:
  An assembly specified in the application dependencies manifest (MyProject.WebAPI.deps.json) was not found:
    package: 'Microsoft.AspNetCore.Mvc.Abstractions', version: '2.0.2'
    path: 'lib/netstandard2.0/Microsoft.AspNetCore.Mvc.Abstractions.dll'

  This assembly was expected to be in the local runtime store as the application was published using the following target manifest files:
    aspnetcore-store-2.0.5.xml

Quelqu'un pourrait-il m'expliquer les détails de exactement ce que cela signifie? Je suppose que c'est une incompatibilité de version de sortes, mais pourquoi est-ce que cela se produise? Je pensais que les dernières versions stables de packages NuGet n'étaient pas censés avoir de tels problèmes.

J'ai été en mesure de résoudre le problème par la dégradation de Microsoft.AspNetCore.Tous de 2.0.5 2.0.3, mais aimerait trouver une meilleure solution à la question afin que je puisse utiliser le plus up-to-date de la version de ce package.

91voto

Steve Tolba Points 731

Le SDK est généralement installé sur les machines de développement, mais en production uniquement sur le runtime.

Ajoutez ce qui suit à votre fichier .csproj et publiez à nouveau.

 <PropertyGroup>               
    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>
 

7voto

Marzouk Points 821

Pour moi, la réponse marquée n'a pas résolu le problème. Mon problème était lors de la tentative d'ajout de migration

 Add-Migration -Name initial-migration -Context Mysln.Data.MyDbContext -StartupProject Mysln -Project Mysln.Core
 

Et l'erreur était comme ça: entrez la description de l'image ici

Et je l'ai résolu en rétrogradant tous mes packages Entityframework vers 2.0.0 au lieu du dernier aperçu 2.2.0.

5voto

Sean Saleh Points 89

Pour résoudre la première moitié du message d'erreur, An assembly specified in the application dependencies manifest (…) was not found assurez-vous de toujours utiliser la publier la sortie lors du déploiement d'une cible de serveur.

Pour une application autonome qui peut être trouvé dans

bin\Release\netcoreapp2.0\win81-x64\publish

ou pour cadre dépendante de déploiements dans

bin\Release\netcoreapp2.0\publish

La sortie dans les répertoires ci-dessus sont destinées à être utilisées dans le développement seulement, car ils sont spécifiques à la machine et l'utilisateur de configuration construits avec des.

Pris d'une réponse similaire.

3voto

user1883961 Points 36

2 cents: si vous prenez simplement du dossier de construction, les DLL de la dépendance ne sont pas fournies. Si vous publiez le dossier, ils le sont. C'était la solution pour moi.

2voto

zgirod Points 707

J'ai eu cette erreur mais ma solution était quelque peu différente de ce qui a été publié ci-dessus. Mon problème était que je déployais via un fichier zip et lors de la construction du fichier zip je n'incluais pas de sous-répertoires donc les fichiers requis n'étaient pas inclus.

Donc, si vous publiez via un fichier zip, assurez-vous d'inclure tous les sous-dossiers lors de la construction du zip.

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