Obecnie do tworzenia aplikacji używamy Delphi 2009 i GIT. Skonfigurowaliśmy skrypt prekompilacji, aby wygenerować numer wersji i identyfikator kompilacji przy użyciu informacji z git i skompilować to jako zasób, który jest zawarty w projekcie. Problem polega na tym, że ten skrypt nie działa podczas zwykłej kompilacji. Oznacza to, że inni programiści mogą skończyć z rozbieżnością między rzeczywistym numerem wersji a numerem w zasobie (szczególnie podczas przełączania oddziałów w git).
Ponieważ używamy naszego oprogramowania do wykonywania niektórych krytycznych obliczeń, chcielibyśmy użyć tego identyfikatora kompilacji do odtwarzania obliczeń i śledzenia problemów.
Poza próbą zmuszenia moich programistów do częstego naciskania klawisza Shift-F9, w jaki sposób mogę zapewnić, że skrypt prekompilacji zostanie uruchomiony, gdy jest to konieczne (najlepiej przy każdej kompilacji)?
Jason.
AKTUALIZACJA: To prawda, że skrypt przed kompilacją jest uruchamiany przy każdej kompilacji. Problem polegał na tym, że spodziewałem się uzyskać inny wynik naciskając F9 po utworzeniu tagu w git, mimo że żaden kod się nie zmienił.
2 odpowiedzi
Akcje przed kompilacją są uruchamiane przed każdą kompilacją.
W komentarzu stwierdzasz, że akcje czasami nie są uruchamiane po naciśnięciu klawisza F9. Ma to sens, ponieważ F9 lub Run wywołuje kompilację tylko wtedy, gdy uzna się, że źródło uległo zmianie.
Wtyczka powiadamiająca BeforeCompile będzie zachowywać się dokładnie w ten sam sposób. Twoim rozwiązaniem jest upewnienie się, że kompilujesz przed uruchomieniem za pomocą Ctrl + F9.
Rozwiązaliśmy podobny problem, pisząc niestandardową wtyczkę IDE, która korzysta z interfejsu IOTAIDENotifier50. W szczególności przy użyciu metody BeforeCompile, aby przetestować niektóre wymagane ustawienia projektu, a także wygenerować dynamiczne informacje o wersji (zasób VERSIONINFO). Jest wywoływany dla każdego typu kompilacji (kompilacji i kompilacji). Generujemy również unikalny numer seryjny pliku exe i rejestrujemy wszystko, co pomaga nam śledzić problemy i jest podobne do Twojego skryptu. Dla kompletności zrobiliśmy to tylko w Delphi 2007 i Delphi XE.
Podobne pytania
Nowe pytania
delphi
Delphi to język do szybkiego tworzenia natywnych aplikacji dla systemów Windows, macOS, Linux, iOS i Android przy użyciu Object Pascal. Nazwa odnosi się do języka Delphi, a także jego bibliotek, kompilatora i IDE, które są używane do edycji i debugowania projektów Delphi.