Post Construire terminé avec le code 1
J'ai un projet avec un événement post-construction:
copy $(ProjectDir)DbVerse\Lunaverse.DbVerse.*.exe $(TargetDir)
Il fonctionne très bien à chaque fois sur ma machine. J'ai un nouveau développeur qui obtient toujours le "terminé avec le code 1" erreur. J'ai eu de lui lancer la même commande dans l'invite de commandes DOS, et il a bien fonctionné. Ce pourrait être la cause? Est-il possible de l'obtenir à l'erreur réelle?
Nous sommes à la fois à l'aide de Visual Studio 2008.
- dans mon cas, la réponse de Tim Scott fournir près de la fin de cette page (j'ai donc négliger dans le début) de résoudre mon problème.
Vous devez vous connecter pour publier un commentaire.
Elle avait un espace dans l'un des noms de dossier dans son chemin, et pas de guillemets autour d'elle.
L'un avec les "Pings" m'a aidé... mais peut être expliqué un peu mieux...
Pour moi la solution a été de changer:
à ceci:
Espère que cela fonctionne pour vous. 🙂
Ma raison pour le Code 1, c'est que le dossier cible était en lecture seule. Espérons que cela aide quelqu'un!
J'ai eu un événement post-construction pour faire une copie d'un répertoire à un autre et la destination était en lecture seule. Donc je suis juste allé et non l'attribut de lecture seule sur le répertoire et tous ses sous-répertoires! Assurez-vous juste que c'est un répertoire qui est sûr de le faire!
J'ai ajouté ce pour les futurs visiteurs puisque c'est assez active à une question.
ROBOCOPY sorties avec des "codes de réussite", qui sont de moins de 8 ans. Voir: http://support.microsoft.com/kb/954404
Cela signifie que:
Donc, j'ai résolu ce facilement en ajoutant ceci au bas du fichier de commandes
Suggèrent que la poignée de ROBOCOPY des erreurs dans ce mode
Confusion sera mis en quand aucun des fichiers sont copiés = pas d'erreur dans les VS. Puis, quand il y a des changements, les fichiers ne peuvent être copiés, VS erreurs, mais tout ce que le développeur a voulu a été fait.
Autre Astuce: N'utilisez pas de pause dans le script que cela allait devenir une pause indéfinie dans le VS construire. tout en développant le script, utilisez quelque chose comme
timeout 10
. Vous remarquerez que cette et le commenter plutôt que d'avoir une pendaison de construire.Obtenir le moniteur de processus de SysInternals
le configurer pour qu'il montre pour la Lunaverse.DbVerse (sur le champ Chemin d'accès) regardez le résultat de l'opération.
Il devrait être évident à partir de là, ce qui s'est passé
J'ai dû courir VS en tant qu'Administrateur pour obtenir mon post-build copie d'un système d'exploitation protégé "..\Common7\IDE\PrivateAssemblies" travailler
Pour ceux qui utilisent " copie' commande en Construire des Événements (Pré-événement de construction de la ligne de commande ou/et Post-événement de construction de la ligne de commande) à partir de Projet -> Propriétés: vouscopie' paramètres de commande devrait ressembler ici:
copy "source of files" "destination for files"
. N'oubliez pas d'utiliser les guillemets (pour éviter les problèmes avec les espaces dans les chaînes de l'adresse).J'ai eu un problème similaire, mais plus précisément dans un Jenkins environnement de construction. Pour résoudre le problème, j'ai changé d'utiliser la commande copier dans le post-construction de l'événement à l'aide d'une cible de la copie.
J'ai changé cela:
à ceci:
et il fonctionne très bien maintenant.
L'erreur en question, j'ai été prise en été:
J'ai pu corriger mon Code 1 en exécutant Visual Studio en tant qu'Admin. Apparemment, il n'avait pas accès à exécuter des commandes shell sans Admin.
Comme une question de bonne pratique, je vous suggère de remplacer les post-construction de l'événement avec un MS construction de la tâche de Copie.
Pour moi, j'ai dû assurez-vous que le programme que j'ai été d'adaptation fichier n'était pas en cours d'exécution. Il n'y avait pas d'erreurs dans la syntaxe. Espérons que cela aide quelqu'un.
Je viens de recevoir le même message d'erreur. J'ai eu un % dans le chemin de destination qui doit être échappé
nécessaires pour être
Ok, c'est un problème avec beaucoup de solutions, donc je viens de poster le mien pour donner aux gens plus de conseils.
Ma situation est de vérifier les dossiers dans votre chemin d'accès et assurez-vous que tous d'entre eux sont présents dans votre machine. Par exemple: "$(SolutionDir)\partBin\Bin\$(ProjectName).apb", mais "Bin" n'est pas en partBin dossier.
$(SolutionDir)
est redondante.Pour ceux qui utilisent la "copie" de commande dans les Événements de construction (Pré-événement de construction de la ligne de commande ou/et après l'événement de construction de la ligne de commande) de Projet -> Propriétés: dossier cible doit exister
Donc beaucoup de solutions...
Dans mon cas, j'ai eu à enregistrer le fichier bat avec les non-unicode (de l'Ouest, Windows) codage. Par défaut, lorsque j'ai ajouté le fichier de visual studio (et probablement je l'ai fait à l'extérieur de la VS), elle a ajouté avec l'encodage UTF-8.
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 a changé le Nom de l'Assemblage et de la Racine de l'espace de Noms pour le nom du projet et il fonctionnait très bien après!
Encore une autre réponse ...
Dans mon cas, j'ai eu un Visual Studio 2017 projet ciblant à la fois .Net Standard 1.3 et .Net Framework 2.0. Cela a été spécifié dans le .csproj fichier comme ceci:
J'ai aussi eu un post-événement de construction de la ligne de commande comme ceci:
En d'autres mots, j'ai essayé de copier le .Net Framework .dll produite par l'accumulation à un autre emplacement.
Ce n'était pas avec cette erreur quand j'ai fait une Reconstruction:
Après beaucoup de frustration que j'ai enfin déterminé que le phénomène était que la Reconstruction supprimé tous les fichiers de sortie, puis a fait le construire .Net la Norme 1.3, puis a essayé de lancer le post-événement de construction de la ligne de commande, qui a échoué parce que le fichier à copier n'était pas construit encore.
Donc la solution a été de changer l'ordre de construction, c'est à dire, créer pour .Net Framework 2.0 d'abord, puis pour .Net Standard 1.3.
Cela fonctionne à présent, avec le problème mineur à la suite de l'événement de construction de la ligne de commande est exécuté deux fois, de sorte que le fichier est copié deux fois.