Встроить хеш коммита git в dll .NETC#

Место общения программистов C#
Ответить
Anonymous
 Встроить хеш коммита git в dll .NET

Сообщение Anonymous »

Я создаю приложение на C#, используя Git в качестве средства контроля версий.
Есть ли способ автоматически встроить хеш последнего коммита в исполняемый файл при создании приложения?< /p>
Например, вывод хеша фиксации на консоль будет выглядеть примерно так:
class PrintCommitHash
{
private String lastCommitHash = ?? // What do I put here?
static void Main(string[] args)
{
// Display the version number:
System.Console.WriteLine(lastCommitHash );
}
}

Обратите внимание, что это должно быть сделано во время сборки, а не время выполнения, так как мой развернутый исполняемый файл не будет иметь доступ к репозиторию git. .
Соответствующий вопрос по C++ можно найти здесь.

РЕДАКТИРОВАТЬ

По просьбе @mattanja я публикую скрипт git-хука, который использую в своих проектах. Настройка:
  • Хуки — это сценарии оболочки Linux, которые размещаются в папке: path_to_project\.git\hooks
  • Если вы используете msysgit, папка hooks уже содержит несколько примеров сценариев. Чтобы git мог их вызывать, удалите расширение «.sample» из имени скрипта.
  • Имена скриптов-перехватчиков соответствуют событию, которое их вызывает. В моем случае я изменил post-commit и post-merge.
  • My AssemblyInfo.cs файл находится непосредственно под путем проекта (тот же уровень, что и папка .git). Он содержит 23 строки, и я использую git для генерации 24-й.
Поскольку моя оболочка Linux немного заржавела, скрипт просто читает первые 23-е. строки AssemblyInfo.cs во временный файл, отображает хэш git до последней строки и переименовывает файл обратно в AssemblyInfo.cs. Я уверен, что есть лучшие способы сделать это:
#!/bin/sh
cmt=$(git rev-list --max-count=1 HEAD)
head -23 AssemblyInfo.cs > AssemblyInfo.cs.tmp
echo [assembly: AssemblyFileVersion\(\"$cmt\"\)] >> AssemblyInfo.cs.tmp
mv AssemblyInfo.cs.tmp AssemblyInfo.cs


Подробнее здесь: https://stackoverflow.com/questions/151 ... -a-net-dll
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»