2008-12-01 13 views
6

Czego szukamy, to: podczas kompilowania tej samej konfiguracji, powiedz: Release | Win32, istnieje sposób, aby czasami wykonywać kroki postbuild. Tak jak, jeśli jestem na komputerze programisty, wykonaj wszystkie kroki po budowaniu lub jeśli jestem na serwerze kompilacji, nie rób tego. A może jedynym sposobem na osiągnięcie tego jest wprowadzenie nowej konfiguracji?Czy istnieje sposób warunkowego uruchomienia etapów budowania programu Visual Studio po kompilacji

Komentatorzy: Dzięki za pomysły, nie chcemy używać skryptów, ponieważ byłoby to jeszcze jedna rzecz do utrzymania, a przechodzenie do plików proj MSBuild byłoby również bardzo bolesne w tym momencie. Dzięki za próbę.

+0

Duplikat http://stackoverflow.com/questions/150053/how-to-run-visual-studio-post-build-events-for-debug-build-only –

Odpowiedz

14

Możesz użyć zmiennych środowiskowych w skrypcie budowania postów. Coś takiego:

if NOT %ComputerName% == DEVMACHINENAME GOTO end 
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ngen "$(TargetPath)" 
:end 
+0

+1 To wydaje się najbardziej prostym podejściem do rozwiązania problemu. Niech kompilacja to zrobi i popchnij logikę warunkową do etapu budowania postu. –

1

Jeśli chcesz złamać do samego MSBuild (. * Proj pliki są zasadniczo tylko skrypty msbuild), można uruchomić czynności specyficznych dla maszyny post-produkcji: http://flimflan.com/blog/MachineSpecificTasksWithMSBuild.aspx

„ta wykorzystuje fakt, że wszystkie zmienne środowiskowe są natychmiast dostępne jako właściwości skryptu MSBuild oraz że wszystkie komputery Windows (nad którymi ostatnio pracowałem) mają ustawioną zmienną środowiskową COMPUTERNAME. "

+1

Sugerowałbym ustawienie innego środowiska zmienne, a nie zakodowane na sztywno skrypty do konkretnych nazw maszyn - raczej ustaw niektóre env var jak BUILD_MACHINE = TRUE, a następnie sprawdź je. – Tim

+0

^Seconding Tim, dobry pomysł. – Chris

0

Jeśli nie chcesz mieć oddzielnej konfiguracji kompilacji (która wydaje mi się najbardziej sensowna), możesz np. zdefiniuj zmienną środowiskową na swoim serwerze budowania, którą możesz następnie przetestować w swoim skrypcie post-build.

0

byłoby możliwe do wdrożenia Twój post zbudować kroki jako skrypt zewnętrznej, która jest zawsze wykonywany, ale ma logiki warunkowo wykonywania czynności wymagać?

Powiązane problemy