Je publie une application ASP.NET Core 2 et constate l'erreur suivante.
Error:
An Assembly specified in the application dependencies manifest (MyApp.deps.json) was not found:
package: 'Microsoft.ApplicationInsights.AspNetCore', version: '2.1.1'
path: 'lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.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.0-linux-x64.xml;aspnetcore-store-2.0.0-osx-x64.xml;aspnetcore-store-2.0.0-win7-x64.xml;aspnetcore-store-2.0.0-win7-x86.xml
Je n'ai pas vu cette erreur dans l'environnement Dev. Donc pas sûr de ce qui a mal tourné. Des idées pour résoudre le problème?
Mettre à jour
J'ai installé le SDK (seul le runtime était installé) et tout a commencé à fonctionner. Pas sûr que ce soit la meilleure solution cependant.
Cet assemblage devait se trouver dans le magasin d’exécution local
Vous obtenez cette erreur, car ASP.NET Core Runtime Store n'est pas installé. Vous avez deux options pour résoudre ce problème.
Installez le magasin ASP.NET Core Runtime. Il est fourni avec le SDK .NET Core, ce qui explique pourquoi l’installation du SDK a résolu ce problème. Vous pouvez également installer uniquement le magasin, sans le SDK, en le téléchargeant ici: https://www.Microsoft.com/net/download/all .
N'utilisez pas le découpage du magasin d'exécution. Vous pouvez désactiver le découpage en définissant cette propriété dans votre fichier csproj.
<PropertyGroup>
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>
Vous pouvez également le transmettre en ligne de commande.
dotnet publish /property:PublishWithAspNetCoreTargetManifest=false
Mise à jour: 25 juin 2018
Cette réponse ne s'applique qu'aux projets ASP.NET Core 2.0. Dans ASP.NET Core 2.1, il n'y a plus de magasin d'exécution.
Assurez-vous que votre projet a des versions correspondantes pour Microsoft.NETCore.App (structure cible de votre projet) et Microsoft.AspNetCore.All (dépendance NuGet incluse par défaut pour les projets .NET Core 2.0) ou Microsoft.AspNetCore.App (pour les projets .NET Core 2.1+).
Si vous avez déjà mis à jour votre infrastructure cible de projet de .NET Core 2.0 vers .Net Core 2.1, n'oubliez pas de mettre à jour vos dépendances NuGet en conséquence, car elles ne seront pas mises à jour automatiquement.
Ce problème est traité en détail ici: https://github.com/dotnet/coreclr/issues/13542 Il semble être lié à la mise à jour de Microsoft.AspNetCore.All vers la version 2.0. 3 ou plus dans votre projet.
Suite à la discussion ci-dessus, il semble que pendant un certain temps, une solution consistait à installer le dernier SDK .NET Core sur la machine hôte. Mais au moins avec le SDK actuel 2.1.300, cela ne résout pas le problème pour moi.
La solution pour moi a été d’ajouter la ligne suivante au .csproj de mon projet principal:
<PropertyGroup>
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>
Avec cette ligne, TOUTES les dépendances de la structure seront placées dans le dossier de publication! Les données publiées de l'un de mes projets sont passées de 15 Mo à 55 Mo avec ce commutateur. Mais au moins cela fonctionne, jusqu'à ce qu'il y ait une meilleure solution.
Je veux ajouter quelque chose à la réponse de @ pallxk. Il m'a donné des conseils pour résoudre mon problème .. Je connais bien utiliser Visual Studio, mais je ne connais pas très bien VS Code.
Avec Visual Studio, je n’ai eu aucun problème, mais avec VS Code comme il l’a mentionné, je dois mettre à jour les dépendances Nuget manuellement. Je ne savais pas où les mettre à jour . Ils se trouvaient sous mon dossier de projet dans:
.vscode/launch.json
Je dois mettre à jour
"program": "${workspaceFolder}/Ghaseel.RestApi/bin/Debug/netcoreapp2.1/myProject.dll
pour ça
"program": "${workspaceFolder}/Ghaseel.RestApi/bin/Debug/netcoreapp2.2/myProject.dll
J'espère que cela aidera quelqu'un d'autre à résoudre ses problèmes.