1
votes

MSB3021 Impossible de copier le fichier n'a pas pu trouver une partie de l'erreur de chemin lors de l'exécution de l'application Service Fabric dans Visual Studio

J'ai une solution Service Fabric qui contient plusieurs projets. Je peux exécuter tous sauf un sur mon cluster local sans problème, mais un projet particulier ne sera pas déployé en raison du problème suivant:

MSB3021 Impossible de copier le fichier "C: \ Path \ To \ Repo \ src \ MyProject \ MyService \ obj \ Debug \ netcoreapp2.1 \ win7-x64 \ PubTmp \ Out \ Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll" à "C: \ Path \ To \ Repo \ src \ MyProject \ MyService \ pkg \ Debug \ MyServicePkg \ Code \ Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll". Impossible de trouver une partie du chemin 'C: \ Path \ To \ Repo \ src \ MyProject \ MyService \ pkg \ Debug \ MyServicePkg \ Code \ Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll'.

Il y a deux autres erreurs signalant le même problème pour Microsoft.Extensions.Configuration.EnvironmentVariables.dll et runtimeconfig.json et 30 avertissements indiquant le même problème pour les DLL aléatoires .

J'ai fait tout ce qui est habituel plusieurs fois:

  1. Suppression de tous les répertoires bin , obj et pkg
  2. Cluster local arrêté
  3. Redémarrage de Visual Studio
  4. Machine redémarrée
  5. Retrait du dépôt dans un répertoire distinct

L'erreur indique qu'il ne peut pas trouver une partie du chemin vers le répertoire Code dans pkg , mais j'ai vérifié qu'il existe.

Il est étrange que cela n'affecte qu'un seul projet sur plusieurs. Est-ce que je manque quelque chose d'évident ici?


0 commentaires

5 Réponses :


0
votes

Je n'ai pas pu aller au fond de ce problème, j'avais déjà supprimé le répertoire de la solution et re-cloné du dépôt et cela ne l'avait pas corrigé, bien que dans le même répertoire parent.

Dans une dernière tentative, j'ai re-cloné le dépôt à la racine de mon répertoire utilisateur et cela a bien fonctionné à partir de là.

Je n'ai aucune idée de la nature du problème et pourquoi cela l'a résolu.


2 commentaires

CHEMIN TROP LONG. Il est presque certain que ces chemins qui échouent sont soudainement TROP LONGS. C'est pourquoi déplacer le dépôt à la racine de votre répertoire utilisateur a fait l'affaire.


Imaginez chaque logiciel nécessitant des astuces comme celle-ci?



2
votes

CHEMIN TROP LONG.

Il est presque certain que ces chemins qui échouent sont soudainement TROP LONGS. C'est pourquoi déplacer le dépôt à la racine de votre répertoire utilisateur a fait l'affaire. Cela explique également la nature apparemment aléatoire des échecs et le phénomène de certains projets fonctionnant et d'autres non; Certains ont des chemins trop longs, d'autres non.

Si vous copiez les chemins défaillants de votre fenêtre de sortie et les collez dans File Exploder, ils fonctionnent correctement.

Mais si vous les expérimentez depuis la ligne de commande ou dans un fichier batch, ils échoueront. Je mettrais de l'argent là-dessus étant le problème.


0 commentaires

0
votes

Je voulais juste intervenir, j'obtenais la même erreur et sur la base des réponses précédentes, j'ai supprimé le dépôt de l'emplacement suggéré par Visual Studio de C: \ Users \ myusername \ Source \ Repos et je l'ai recloné en c : \ tfs. La solution créée dès le premier essai par la suite.

Ceci est sur Visual Studio Enterprise 2019 version 16.6.5.


0 commentaires

0
votes

J'accepte la déclaration de Bart, PATH TOO LONG.

Pour toute personne confrontée à ce problème , essayez de cloner votre base de code / dépôt dans un dossier plus proche de la racine et vous pourrez le voir fonctionner comme par magie .

Bien sûr, l'erreur n'est pas intuitive, mais le problème vient de la limitation de longueur.


0 commentaires

0
votes

Dans mon cas:

  1. Supprimer la référence à l'autre projet
  2. Supprimer le dossier Bin avec le ddl du projet du point 1

Réaffectez la référence du projet, compilez et publiez


0 commentaires