Post Build zakończony kodem 1

Mam projekt z wydarzeniem post build:

copy $(ProjectDir)DbVerse\Lunaverse.DbVerse.*.exe  $(TargetDir)
Działa dobrze za każdym razem na mojej maszynie. Mam nowego programistę, który zawsze dostaje błąd "exited with code 1". Kazałem jej uruchomić tę samą komendę w wierszu polecenia DOS i działało dobrze. Co może być tego przyczyną? Czy jest jakiś sposób, aby dostać się do prawdziwego błędu?

Obaj korzystamy z Visual Studio 2008.

Author: jdhurst, 2008-11-21

17 answers

Miała spację w jednym z nazw folderów w swojej ścieżce i żadnych cudzysłowów wokół niego.

 102
Author: Tim Scott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-21 21:52:13

Pomógł mi ten z "pingami"... ale może być wyjaśnione trochę lepiej...

Dla mnie rozwiązaniem było zmienić:

copy $(TargetDir)$(TargetName).* $(SolutionDir)bin

Do tego:

copy "$(TargetDir)$(TargetName).*" "$(SolutionDir)bin"
Mam nadzieję, że ci się uda. :-)
 53
Author: JanBorup,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-18 19:51:26

Powodem kodu 1 było to, że folder docelowy był tylko do odczytu. Mam nadzieję, że to komuś pomoże! Miałem Zdarzenie post build, aby zrobić kopię z jednego katalogu do drugiego, a miejsce docelowe było tylko do odczytu. Więc po prostu poszedłem i odznaczyłem atrybut Tylko do odczytu w katalogu i wszystkich jego podkatalogach! Po prostu upewnij się, że jest to katalog, który jest bezpieczny, aby to zrobić!

 43
Author: Shalini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-25 08:50:15

dodałem to dla przyszłych odwiedzających, ponieważ jest to dość aktywne pytanie.

ROBOCOPY wychodzi z "kodami sukcesu", które są poniżej 8. Zobacz: http://support.microsoft.com/kb/954404

Oznacza to, że:

robocopy exit code 0 = no files copied
robocopy exit code 1 = files copied
When the result is 1, this becomes an error exit code in visual studio.

Więc rozwiązałem to łatwo dodając to na dole pliku wsadowego

exit 0

Zaproponuj obsługę błędów ROBOCOPY w ten sposób

rem each robocopy statement and then underneath have the error check.
if %ERRORLEVEL% GEQ 8 goto failed

rem end of batch file
GOTO success

:failed
rem do not pause as it will pause msbuild.
exit 1

:success
exit 0    

zamieszanie zostanie ustawione, gdy nie zostaną skopiowane żadne pliki = brak błędu w VS. wtedy, gdy są zmiany, pliki są kopiowane, błędy VS, ale wszystko, czego chciał deweloper, zostało zrobione.

dodatkowa wskazówka: nie używaj pauzy w skrypcie, ponieważ stanie się to nieokreśloną pauzą w budowaniu VS. podczas tworzenia skryptu użyj czegoś w rodzaju timeout 10. Zauważysz to i skomentujesz, zamiast mieć wiszącą konstrukcję.

 36
Author: Valamas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-16 23:36:19

Get process monitor from SysInternals ustaw go na obserwację Lunaverse.DbVerse (w polu Path) spójrz na wynik operacji. Stąd powinno być oczywiste, co poszło nie tak

 11
Author: Asher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-21 20:50:34

Musiałem uruchomić VS jako Administrator, aby uzyskać kopię post-build na OS chroniony"..\Common7 \ IDE \ PrivateAssemblies " do pracy

 7
Author: wruckie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-30 21:31:42

Dla tych, którzy używają polecenia 'copy ' w zdarzeniach Build (Pre-build event command line or / and Post-build event command line ) from Project - > Properties : you ' copy' Command parameters should look like here: copy "source of files" "destination for files". Pamiętaj, aby używać cudzysłowów (aby uniknąć problemów ze spacjami w łańcuchach adresu).

 5
Author: Bohdan Kuts,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-18 09:00:46

Udało mi się naprawić mój kod 1, uruchamiając Visual Studio jako Admin. Najwyraźniej nie miał dostępu do wykonywania poleceń powłoki bez admina.

 3
Author: jdurden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-19 17:45:48

Miałem podobny problem, ale konkretnie w środowisku budowania Jenkinsa. Aby rozwiązać ten problem, przełączyłem się z polecenia Kopiuj w zdarzeniu post build na polecenie Kopiuj obiekt docelowy.

Zmieniłem to:

   <PropertyGroup>
      <PostBuildEvent>copy $(ProjectDir)bin\BLAH.Common.xml $(ProjectDir)App_Data\BLAH.Common.xml</PostBuildEvent>
   </PropertyGroup>

Do tego:

  <Target Name="AfterBuild">
    <Copy SourceFiles="$(ProjectDir)bin\BLAH.Common.xml" DestinationFolder="$(ProjectDir)App_Data\" />
  </Target>
I teraz działa dobrze.

Konkretny błąd, który otrzymałem, to:

(PostBuildEvent target) -> 
  C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(4291,5): error MSB3073: The command "copy <http://1.2.3.4/job/BLAHv2/ws/Api/bin/BLAH.Common.xml> <http://1.2.3.4/job/BLAHv2/ws/Api/App_Data/BLAH.Common.xml"> exited with code 1. [<http://1.2.3.4/job/BLAHv2/ws/Api/Api.csproj]>
 3
Author: TechSavvySam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-31 15:04:19

W ramach dobrej praktyki proponuję zamienić Zdarzenie post build na ms Build File Copy task.

 2
Author: Asher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-21 21:58:28

Dla mnie musiałem upewnić się, że program, do którego miałem radzić sobie z plikiem, nie działa w tym czasie. Nie było żadnych błędów w składni. Mam nadzieję, że to komuś pomoże.

 2
Author: Richard S.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-18 14:18:04

Właśnie otrzymałem ten sam błąd. Miałem % w ścieżce docelowej, którą trzeba było uciec

c:\projects\%NotAnEnvironmentVariable%

Potrzebne do

c:\projects\%%NotAnEnvironmentVariable%%
 2
Author: firedfly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-01 18:26:12

Ok, to jest problem z wieloma rozwiązaniami, więc po prostu zamieszczam swoje, aby dać ludziom więcej wskazówek. Moja sytuacja polega na podwójnym sprawdzeniu folderów w ścieżce i upewnieniu się, że wszystkie z nich istnieją w Twoim komputerze. Na przykład: "$(SolutionDir) \ partBin \ Bin \ $(ProjectName).pdb", ale " Bin " nie znajduje się w folderze partBin.

 2
Author: David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-28 13:59:29

Dla tych, którzy używają polecenia 'copy' w zdarzeniach Build (linia poleceń Pre-build event lub/i linia poleceń Post-build event) Z Project - > Properties: folder docelowy powinien istnieć

 2
Author: syned,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-21 14:51:01

Tyle rozwiązań...

W moim przypadku musiałem zapisać plik bat z kodowaniem non-unicode (Western, Windows). Domyślnie, gdy dodałem plik do visual studio (i chyba powinienem był to zrobić poza VS), Dodano z kodowaniem UTF-8.

 0
Author: Tengiz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-02 09:26:31

Miałem ten sam problem i okazało się, że to dlatego, że zmieniłem nazwę projektu. Wszedłem do właściwości projektu i zmieniłem nazwę asemblera i główną Przestrzeń nazw na nazwę projektu i działało świetnie po tym!

 0
Author: golgothan3,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-06 15:43:11

Kolejna odpowiedź ...

W moim przypadku miałem projekt Visual Studio 2017 skierowany zarówno do. Net Standard 1.3 i. Net Framework 2.0. Zostało to określone w .plik csproj taki:

<TargetFrameworks>netstandard1.3;net20</TargetFrameworks>

Miałem również wiersz poleceń zdarzenia post-build, taki jak ten:

copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"
Innymi słowy, próbowałem skopiować. Net Framework .dll wytworzony przez kompilację do alternatywnej lokalizacji.

To był błąd, gdy zrobiłem przebudowę:

MSB3073 The command "copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"" exited with code 1.

Po wielu frustracja w końcu stwierdziłem, że dzieje się to, że Rebuild usunął wszystkie pliki wyjściowe, a następnie zrobił kompilację dla.Net Standard 1.3, a następnie próbował uruchomić wiersz poleceń zdarzenia post-build, co się nie udało, ponieważ plik do skopiowania nie został jeszcze zbudowany.

Rozwiązaniem była więc zmiana kolejności budowania, tj. build dla. Net Framework 2.0 najpierw, a następnie dla. Net Standard 1.3.

<TargetFrameworks>net20;netstandard1.3</TargetFrameworks>

To teraz działa, z drobną usterką, którą jest wiersz poleceń zdarzenia post-build jest uruchamiany dwa razy, więc plik jest kopiowany dwa razy.

 0
Author: RenniePet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-19 04:11:50