Создание версии для каждого csproj в решении и доступ к нему из кода - PullRequest
0 голосов
/ 10 мая 2019

В основном мое решение содержит, например, 10 файлов csproj

Я бы хотел, чтобы каждый из них был версионным, а затем отобразил бы его в своем приложении (asp netcore mvc) на какой-то странице.Это список всех имен csproj с его версией (которая может быть сгенерирована приложением или чем-то еще)

например,

Сервисы 2019.05.01

Я думал о создании public static Dictionary<string, string> в .csproj, на который все остальные ссылки csproj ссылаются на что-то вроде «точки входа csproj», и он будет выполнять .Add("name of csproj", "some version based on data")

У кого-нибудь есть идеи, как добиться чего-то подобного

1 Ответ

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

Исходный ответ: https://stackoverflow.com/a/50607951/10522960

Резервное копирование:

Для проектов .NET Core я адаптировал ответ Postlagerkarte, чтобы обновить поле Copyright для сборки с датой сборки.

Непосредственное редактирование csproj

Следующее может быть добавлено непосредственно к первому PropertyGroup в csproj:

<Copyright>Copyright © $([System.DateTime]::UtcNow.Year) Travis Troyer ($([System.DateTime]::UtcNow.ToString("s")))</Copyright>

Альтернатива: Свойства проекта Visual Studio

Или вставьте внутреннююВыражение непосредственно в поле Copyright в разделе Package свойств проекта в Visual Studio:

Copyright © $([System.DateTime]::UtcNow.Year) Travis Troyer ($([System.DateTime]::UtcNow.ToString("s")))

Это может немного сбить с толку, поскольку Visual Studio будет оценивать выражение и отображать текущее значение в окне.но он также соответствующим образом обновит файл проекта за кулисами.

Для всего решения через Directory.Build.props

Вы можете поместить элемент <Copyright> выше в файл Directory.Build.props вкорень вашего решения, и он будет автоматически применен ко всем проектам в каталоге, при условии, что каждый проект не предоставляет свой собственный Val val Copyright

<Project>
 <PropertyGroup>
   <Copyright>Copyright © $([System.DateTime]::UtcNow.Year) Travis Troyer ($([System.DateTime]::UtcNow.ToString("s")))</Copyright>
 </PropertyGroup>
</Project>

Directory.Build.props: Настройте свою сборку

Выходные данные

Пример выражения даст вам авторское право, подобное этому:

Copyright © 2018 Travis Troyer (2018-05-30T14:46:23)

Извлечение

Вы можете просмотреть информацию об авторских правах из свойств файла в Windows или получить ее во время выполнения:

var version = FileVersionInfo.GetVersionInfo(Assembly.GetEntryAssembly().Location);

Console.WriteLine(version.LegalCopyright);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...