J'ai un projet avec un événement post build:
copy $(ProjectDir)DbVerse\Lunaverse.DbVerse.*.exe $(TargetDir)
Cela fonctionne bien à chaque fois sur ma machine. J'ai un nouveau développeur qui obtient toujours l'erreur "sorti avec le code 1". Je lui ai fait exécuter la même commande dans une invite DOS, et cela a bien fonctionné. Qu'est-ce qui peut causer cela? Y a-t-il un moyen d'arriver à la vraie erreur?
Nous utilisons tous les deux Visual Studio 2008.
visual-studio-2008
post-build
Tim Scott
la source
la source
Réponses:
Elle avait un espace dans l'un des noms de dossier dans son chemin, et pas de guillemets autour.
la source
Celui avec les "Pings" m'a aidé ... mais peut être expliqué un peu mieux ...
Pour moi, la solution était de changer:
pour ça:
J'espère que ça marche pour toi. :-)
la source
J'ai ajouté ceci pour les futurs visiteurs car c'est une question assez active.
ROBOCOPY se termine avec des «codes de réussite» inférieurs à 8. Voir: http://support.microsoft.com/kb/954404
Cela signifie que:
J'ai donc résolu ce problème facilement en l'ajoutant au bas du fichier de commandes
Suggérer de gérer les erreurs ROBOCOPY de cette façon
La confusion s'installe lorsqu'aucun fichier n'est copié = aucune erreur dans VS. Ensuite, quand il y a des changements, les fichiers sont copiés, les erreurs VS mais tout ce que le développeur voulait a été fait.
Conseil supplémentaire: n'utilisez pas de pause dans le script car cela deviendrait une pause indéfinie dans la version VS. lors du développement du script, utilisez quelque chose comme
timeout 10
. Vous le remarquerez et le commenterez plutôt que d'avoir une version suspendue.la source
Ma raison pour le code 1 était que le dossier cible était en lecture seule. J'espère que cela aide quelqu'un! J'avais un événement post build pour faire une copie d'un répertoire à un autre et la destination était en lecture seule. Alors je suis juste allé et j'ai décoché l'attribut en lecture seule sur le répertoire et tous ses sous-répertoires! Assurez-vous simplement que c'est un répertoire sûr pour le faire!
la source
Obtenez le moniteur de processus de SysInternals et configurez-le pour surveiller le Lunaverse.DbVerse (dans le champ Chemin) et le résultat de l'opération. Il devrait être évident à partir de là ce qui n'a pas fonctionné
la source
J'ai dû exécuter VS en tant qu'administrateur pour que ma copie post-construction sur un système d'exploitation protégé ".. \ Common7 \ IDE \ PrivateAssemblies" fonctionne
la source
Pour ceux qui utilisent « copie » commande dans Événements de génération ( ligne de commande événement pré-construction ou / et ligne de commande événement post-build ) de projet -> Propriétés : vous « copier » paramètres de commande doit ressembler ici:
copy "source of files" "destination for files"
. N'oubliez pas d'utiliser des guillemets (pour éviter les problèmes d'espaces dans les chaînes d'adresse).la source
J'ai eu un problème similaire, mais spécifiquement dans un environnement de construction Jenkins. Pour résoudre le problème, je suis passé de l'utilisation d'une commande de copie dans l'événement post build à l'utilisation d'une cible de copie.
J'ai changé ceci:
pour ça:
et cela fonctionne bien maintenant.
L'erreur spécifique que j'obtenais était:
la source
J'ai pu corriger mon code 1 en exécutant Visual Studio en tant qu'administrateur. Apparemment, il n'avait pas accès pour exécuter les commandes shell sans Admin.
la source
Par bonne pratique, je vous suggère de remplacer l'événement post build par une tâche MS Build File Copy .
la source
Pour moi, je devais m'assurer que le programme auquel je faisais face ne fonctionnait pas à ce moment-là. Il n'y avait aucune erreur dans la syntaxe. J'espère que cela aide quelqu'un.
la source
Je viens de recevoir la même erreur. J'avais un% dans le chemin de destination qui devait être échappé
besoin d'être
la source
Ok, c'est un problème avec de nombreuses solutions, donc je poste juste le mien pour donner plus d'indices aux gens. Ma situation est de vérifier les dossiers dans votre chemin et de m'assurer qu'ils existent tous sur votre machine. Par exemple: "$ (SolutionDir) \ partBin \ Bin \ $ (ProjectName) .pdb", mais "Bin" n'est pas dans le dossier partBin.
la source
$(SolutionDir)
est redondant.Pour ceux qui utilisent la commande `` copier '' dans les événements de construction (ligne de commande d'événement de pré-construction ou / et ligne de commande d'événement de post-construction) à partir de Projet -> Propriétés: le dossier cible doit exister
la source
Tant de solutions ...
Dans mon cas, j'ai dû enregistrer le fichier bat avec un encodage non-unicode (Western, Windows). Par défaut, lorsque j'ai ajouté le fichier à Visual Studio (et j'aurais probablement dû le faire en dehors du VS), il a été ajouté avec un encodage UTF-8.
la source
J'ai eu ce même problème et il s'est avéré que c'était parce que j'avais renommé le projet. Je suis allé dans les propriétés du projet et j'ai changé le nom de l'assembly et l'espace de noms racine en nom de projet et cela a très bien fonctionné après cela!
la source
Encore une autre réponse ...
Dans mon cas, j'avais un projet Visual Studio 2017 ciblant à la fois .Net Standard 1.3 et .Net Framework 2.0. Cela a été spécifié dans le fichier .csproj comme ceci:
J'avais également une ligne de commande d'événement post-build comme celle-ci:
En d'autres termes, j'essayais de copier le .Net Framework .dll produit par la construction vers un autre emplacement.
Cela a échoué avec cette erreur lorsque j'ai fait une reconstruction:
Après beaucoup de frustration, j'ai finalement déterminé que ce qui se passait était que Rebuild supprimait tous les fichiers de sortie, puis faisait la construction pour .Net Standard 1.3, puis essayait d'exécuter la ligne de commande de l'événement post-construction, qui a échoué car le fichier à copier n'était pas encore construit.
La solution était donc de changer l'ordre de construction, c'est-à-dire de construire d'abord pour .Net Framework 2.0, puis pour .Net Standard 1.3.
Cela fonctionne maintenant, avec le petit problème que la ligne de commande de l'événement post-construction est exécutée deux fois, donc le fichier est copié deux fois.
la source
Dans mon cas, j'ai dû
cd
(changer de répertoire) avant d'appeler le fichier bat, car à l'intérieur du fichier bat se trouvait une opération de copie qui spécifiait des chemins relatifs.la source