Я хотел бы написать небольшой помощник для сборки, который должен прочитать некоторые свойства текущего рабочего каталога Git, например, последний хеш фиксации, независимо от того, были ли изменены файлы и т.д. Я обнаружил, что проще использовать установленные двоичные файлы Git вместо чтения каталога .git со сжатыми файлами в неизвестном формате. Но мои инструменты должны быть как можно более переносимыми. Он предназначен для приложений .NET, поэтому единственным требованием должен быть .NET 2.0 или новее.
Теперь, как я могу найти путь, где установлен Git? Там по умолчанию используется тот, который используется, если пользователь только что нажал кнопку Git. Но это может быть иначе. И когда я вижу все файлы программы в git/bin, я действительно не хочу, чтобы это было в моем% PATH% (что, похоже, тоже не требует других инструментов, таких как TortoiseGit). Я не нашел никаких путей в реестре.
Какой алгоритм я могу использовать для поиска Git, который не является полным сканированием файловой системы? (Я уже говорил, что нужно быть быстрым?)