#.net #datetime #assemblies #version #compile-time
#.net #datetime #сборки #версия #время компиляции
Вопрос:
Как я узнаю, что добавление значений сборки и ревизии задано.NET assembly to new DateTime(2000, 1, 1)
даст мне время компиляции?
Другими словами: как я узнаю, что [assembly: AssemblyVersion("1.0.*")]
атрибут использовался для сборки во время компиляции?
Комментарии:
1. erm… Сборка и редактирование — это не время компиляции, они просто увеличивают числа, идентифицирующие конкретную версию dll из любой другой версии. Они не имеют ничего общего со временем компиляции.
2. и даже если у кого-то есть такое соглашение, чтобы установить для них эти значения, нет способа проверить этот факт, кроме как спросив людей, которые создали сборку.
3. Тег ‘assembly’ предназначен для низкоуровневого программирования, а не для . СЕТЕВЫЕ сборки.
Ответ №1:
Вы этого не делаете. AssemblyVersionAttribute
Просто хранит кучу чисел. Эти числа могут быть:
- Назначается вручную
- Автоматическое увеличение
- На основе даты и времени
- На основе номеров версий системы управления версиями
Вам нечего AssemblyVersionAttribute
сказать об этом.
Ответ №2:
Вы могли бы использовать это:
static string TimestampFromVersion(string version)
{
string[] versionComponents = version.Split('.');
DateTime potentialCompilationDate = (new DateTime(2000, 1, 1)).AddDays(versionComponents[2]).AddSeconds(2 * versionComponents[3]);
return potentialCompilationDate.ToString("dd MMM yyyy, HH:mm:ss");
}
и сверьте с меткой времени файла…