Jak sprawdzać-kopiować-sprawdzać plik w TFS za pomocą zdarzenia post-build?
Mam kontrolki serwera zawierające projekt. Ilekroć wprowadzam zmiany, chcę mieć możliwość budowania w trybie Release i kopiowania wyjściowej biblioteki DLL (wraz z dokumentacją Xml) do folderu w Team Foundation Server.
Wyszedłem z wydarzeniem po kompilacji, które:
Sprawdza zarówno bibliotekę DLL, jak i XML.Kopiuje je do folderu TFSSprawdza je ponownie z kilkoma komentarzami.To jest skrypt:
if $(ConfigurationName) == Release "$(DevEnvDir)tf" checkout /lock:none C:\CommonAssemblies\$(TargetFileName)
if $(ConfigurationName) == Release "$(DevEnvDir)tf" checkout /lock:none C:\CommonAssemblies\$(TargetName).xml
if $(ConfigurationName) == Release copy $(TargetDir)$(TargetFileName) C:\CommonAssemblies\ /Y
if $(ConfigurationName) == Release copy $(TargetDir)$(TargetName).xml C:\CommonAssemblies\ /Y
if $(ConfigurationName) == Release "$(DevEnvDir)tf" checkin C:\CommonAssemblies\$(TargetFileName) /noprompt /comment:"File checked in automatically by Post-build action in source project."
if $(ConfigurationName) == Release "$(DevEnvDir)tf" checkin C:\CommonAssemblies\$(TargetName).xml /noprompt /comment:"File checked in automatically by Post-build action in source project."
Działa to, ale tylko wtedy, gdy w kodzie jest przynajmniej jedna zmiana i przynajmniej jedna zmiana w dowolnym z komentarzy XML. Jeśli spróbuję zbudować dwa razy bez żadnych zmian, pojawia się błąd mówiący:
The command "if Release == Re...... " exited with code 1.
Jak mogę pozbyć się tego błędu?
Z okna Output mogę odczytać, że TFS wykrył, że nie ma zmian w pliku i cofnąć edycję.
Co mogę dodać do mojej instrukcji sprawdzania, aby zignorować takie sprawdzanie, gdy nie wykryto żadnej zmiany? Pracowałem tak daleko z tym skryptem, ale za każdym razem muszę pamiętać o dodaniu losowego miejsca do kodu i komentarza, aby działał poprawnie. Musi być coś, czego mi brakuje, może parametr lub coś innego.
Oto część tekstu z okna Output:
C:\CommonAssemblies:
Controls.dll
C:\CommonAssemblies:
Controls.xml
1 file(s) copied.
1 file(s) copied.
C:\CommonAssemblies:
Checking in edit: Controls.dll
Changeset #6188 checked in.
C:\CommonAssemblies:
Checking in edit: Controls.xml
The following changes were not checked in because the items were not modified.
Undoing edit: C:\CommonAssemblies\Controls.xml
There are no remaining changes to check in.