Как добавить версию сборки в конец имени выходного файла exe в приложении консоли с использованием события после сборки? - PullRequest
0 голосов
/ 25 мая 2019

У меня есть простое консольное приложение, и оно имеет версию сборки с автоматическим приращением.Когда я собираю проект, я хотел бы добавить версию сборки в конец имени выходного файла exe с помощью события post-build.Макроса для версии сборки нет.

1 Ответ

0 голосов
/ 25 мая 2019

Вам понадобится небольшая утилита, чтобы переименовать цель:

using System;
using System.Diagnostics;
using System.IO;

namespace RenameWithVersion
{
  public class Program
  {
    public static void Main(String[] args)
    {
      if (args.Length != 1)
        throw new Exception("There should only be one command line parameter - the file to be renamed.");

      var oldFilename = Path.GetFullPath(args[0]);

      if (!File.Exists(oldFilename))
        throw new Exception($"File '{oldFilename}' does not exist.");

      var oldFilenameWithoutExt = Path.ChangeExtension(oldFilename, null);
      var fileVersion = FileVersionInfo.GetVersionInfo(oldFilename).FileVersion;
      var ext = Path.GetExtension(oldFilename);

      var newFilename = $"{oldFilenameWithoutExt}{fileVersion}{ext}";

      File.Delete(newFilename);
      File.Move(oldFilename, newFilename);
    }
  }
}

Скомпилируйте ее и поместите исполняемый файл где-нибудь на вашем пути.

В событии после сборки вызовите утилитунапример:

RenameWithVersion "$ (TargetPath)"

(не забудьте поставить $ (TargetPath) в двойных кавычках, если путь содержит пробелы.)

...