Visual Studio, как изменить файл CS перед запуском цели сборки при публикацииC#

Место общения программистов C#
Ответить
Anonymous
 Visual Studio, как изменить файл CS перед запуском цели сборки при публикации

Сообщение Anonymous »

У меня есть ряд приложений, которые я создаю и развертываю, и мне хотелось бы, чтобы информация о версиях была доступна в коде. Эта информация о версиях состоит из таких вещей, как GitHash и дата развертывания, а также ветка, из которой было развернуто, и было ли репозиторий git «грязным» или нет при публикации. Эта информация полезна для отладки проблем с развертыванием и помогает мне узнать, какая версия была развернута и когда она была развернута.
Вот образец автоматически созданного файла version.cs:

Код: Выделить всё

using System;

namespace Common
{
public static class Version
{
public static readonly DateTime Date = DateTime.Parse("2024-09-30T16:29:16.368Z").ToUniversalTime();
public static readonly string Guid = "c7b312cf-3cde-4141-97cd-97648216373a";
public static readonly string GitHash = "78d90bd133450f2c412d772de3b493650afae754";
public static readonly string Branch = "master";
public static readonly bool GitIsDirty = false;
}
}
Обычно я автоматически создаю файл version.json (при публикации) со всей этой информацией, но это означает, что во время выполнения мне нужно прочитать в этом файле то, что я использую. Я бы предпочел автоматически создать файл version.cs (при публикации) и скомпилировать этот файл в приложение.
Итак, я сейчас нахожусь в том месте, где я отредактировал свой csproj, чтобы иметь специальную цель сборки. Эта цель сборки выполняется, когда происходит сборка И публикация. Проблема в том, что новый сгенерированный файл CS (см. файл выше) не подхватывается компилятором. Скорее... файл, существовавший ДО публикации, был скомпилирован в приложение. Примечание. Я хочу создать файл новой версии только при сборке и публикации. Я не хочу создавать файл новой версии каждый раз при сборке.
Поэтому мой вопрос: есть ли способ изменить файл CS при выполнении публикации? п>

Подробнее здесь: https://stackoverflow.com/questions/790 ... publishing
Ответить

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

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

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

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

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