2013-03-06 10 views
6

Potrzebuję napisać informacje git: Nazwa, tagi, oddział, itp. na plik binarny (exe).Napisz ciągi informacji Git do pliku exe C#

Potrzebne do uruchomienia łańcuchów * | grep git, na tym pliku, żeby zobaczyć najnowsze informacje na temat git. wiem, że AssemblyInfo jest wyświetlany po uruchomieniu tego polecenia (bez grep), ale mam obliczu dwóch problemach:

  1. Nie jestem pewien, czy mogę napisać do AssemblyInfo z kodem, aby uruchomić " git log 'command, a następnie pobierz jego dane wyjściowe i napisz do AssemblyInfo.

  2. Jeśli chcę użyć polecenia "git log", to nie będzie działać na Windowsie, ale możliwe, że moja aplikacja będzie zbudowana w systemie Windows, a nie w środowisku Unix.

Może znasz inny sposób na zrobienie tego?

+2

Kiedy to się stanie - na budowę lub przesłanie? –

+0

Chcę, żeby to się stało na budowie –

+0

Zauważyłem, że AssemblyInfo jest zapisywane na końcu pliku exe w formacie "łańcuchowym", więc komenda "stringi" pokazuje mi, co tam. Jest to idealny sposób, aby po prostu dodać do tego wyniku "git log" AssemblyInfo, ale nie mogę uruchomić "git log" na komputerze z Windows. –

Odpowiedz

2

Zwykle robi się to w twoim skrypcie budowy, wypełniając szablonową wersję twojej AssemblyInfo (spójrz na wąsy, język szablonów).

Ten build krok wykonuje następujące operacje:

Następnie twoja wersja oprogramowania działa tak jak zwykle.

+0

Cóż, ja nie rozumiałam, co masz na myśli mówiąc "patrz na wąsy". Ale mam problem, gdy próbuję zbudować moją aplikację na komputerze z systemem Windows, ponieważ nie mogę uruchamiać poleceń "git", ponieważ nie są one wbudowane w cmd. –

+1

@ user1243496: Po prostu dodaj ścieżkę do git.exe do zmiennej środowiskowej 'PATH'. –

+0

który brzmi nieźle, ale potrzebuję bardziej uniwersalnego sposobu, na przykład Jeśli chcę zbudować go na komputerze, gdzie nie ma git.exe w zmiennej środowiskowej PATH. Innym sposobem jest odczytanie plików w folderze .git, ale uważam, że jest niepraktyczny .. –