Być może zastanawiałeś się czy możesz nakazać Visual Studio, aby zrobiło coś przed zbudowaniem projektu. Czym jest to „coś”? Może to być choćby skopiowanie plików z pewnej lokalizacji po zmianie aktualnej konfiguracji projektu czy uruchomienie zewnętrznego programu. Okazuje się, że środowisko to, udostępnia odpowiednie narzędzie. Na dodatek możesz wykonać pewne działania, także po zbudowaniu projektu. A mowa tu o Pre-build events i Post-build events.
Spójrzmy na to!
Gdzie to znaleźć?
Należy otworzyć okno konfiguracji wybranego projektu:
Następnie znaleźć zakładkę Build Events:
Mamy dostępne dwa pola umożliwiające zdefiniowanie działań, które mają zostać podjęte przed lub po zbudowaniu projektu. Po naciśnięciu jednego z dwóch dostępnych przycisków, oprócz edytora dostępny jest przycisk, który wyświetla dostępne makra. Wśród nich możemy znaleźć te, które zwrócą nam aktualną lokalizację projektu, folderu wynikowego programu, nazwę projektu czy solucji. Jest w czym przebierać.
Przykład
Utwórzmy nowy folder w folderze projektu, nadajmy mu nazwę AnotherProgram. W nim utwórzmy nowy plik bat o nazwie program.bat z poniższą zawartością:
@echo off set arg1=%1 echo Program z parametrem %arg1%
Jest to zwykły plik bat, który wyświetla w konsoli wiadomość wraz z parametrem wywołania. Teraz przejdźmy do Visual Studio. Poniżej znajduję się skrypt, który umożliwia uruchomienie naszego programu z parametrami zależnymi od aktualnie wybranej konfiguracji projektu.
if "$(ConfigurationName)" == "Debug" $(ProjectDir)AnotherProgram\program.bat parametrDebug if "$(ConfigurationName)" == "Release" $(ProjectDir)AnotherProgram\program.bat parametrRelease
Wartość zwróconą przez makro ConfigurationName, porównujemy z dwoma dostępnymi w naszym projekcie konfiguracjami. Jeżeli dany warunek zostanie spełniony, zostaje wywołany program.bat z odpowiednim parametrem. Warto zwrócić uwagę na makro ProjectDir, które zwraca nam lokalizację aktualnego projektu.
Jak sprawdzić czy rzeczywiście wszystko działa? Okno Output nam w tym pomoże, ale zanim do niego sięgniemy musimy zmienić jedną opcję w ustawieniach Visual Studio, a mianowicie zwiększyć zakres komunikatów wypisywanych do tego okna.
Teraz w oknie Output możemy odszukać komunikat zwrócony przez nasz program.
Czy to się przydaje?
Nie jestem w stanie stwierdzić jak wielu programistów korzysta z możliwości oferowanych przez ten mechanizm. W moim przypadku korzystałem z niego, do uruchamiania zewnętrznego programu, którego zadaniem było przygotowanie zasobów aplikacji. Myślę, że narzędzie to może być pomocne w pewnych sytuacjach, choćby ta, którą przytoczyłem.
Mechanizm Build events umożliwia, także korzystanie z pętli, tworzeniem plików czy folderów, a także ich kopiowanie. Zachęcam do zapoznania się z informacjami zawartymi w MSDN.
2 Komentarze. Zostaw komentarz
Jeśli budujesz aplikację zdalnie, z wykorzystaniem jakiegoś narzędzia do CI/CD to możesz te eventy wykorzystać do budowania front-endu, logowania statusu builda, informowania mailem jeśli np. coś się nie zbudowało, itd. Całkiem przydatna sprawa niezależnie od platformy.
Ja np wykorzystuje czasem zdarzenie prev żeby do wersji aplikacji dobić numer rewizji svn z jakiej została zbudowana. Jako 4 człon.