Публикация Версии против Сборки (и т. Д.) Версии

Я читал темы о сборочных, файловых и сборочных информационных версиях.

Я хотел бы знать, куда входит версия для публикации. Результат...

string thisAppsVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

... похоже на AssemblyVersion. До сих пор я использовал версию публикации с классом развертывания:

ApplicationDeployment deployment = ApplicationDeployment.CurrentDeployment;
Version thisAppsVersion = deployment.CurrentVersion;

... но это не доступно, если приложение не установлено. Мне нравится, как у него есть возможность автоматически увеличивать Revision.

Есть ли способ получить общедоступную версию без развертывания в сети? Должно ли это быть "публичное лицо" версии приложения?

Пример: версия пользовательского интерфейса (изменено из версии публикации)

Заранее спасибо!

Gregg

1 ответ

Решение

Я думаю, что разные версии служат разным целям.

1) AssemblyVersion для CLR для загрузки и привязки сборок. Это полезно для разработчиков, но не для конечных пользователей.

2) FileVersion или AssemblyFileVersion - это то, что Windows отображает как версию файла исполняемого файла. Это точно такая же версия приложения Win32. И эта версия используется системой и установщиками, чтобы определить, какая версия новее.

3) PublishVersion используется для версии пакета развертывания. Это нормально, чтобы одни и те же двоичные файлы публиковались дважды с разными версиями публикации.

4) Версия, которую вы показываете своим конечным пользователям, является еще одной версией. Назовите это версия продукта или что-то еще. Он может отличаться от любого из вышеперечисленных, например, в деловых целях. См. AssemblyInformationalVersionAttribute, если вы хотите использовать некоторую встроенную поддержку.NET.

Для простых случаев вы можете использовать FileVersion в качестве версии продукта. Но опубликовать версию не очень хорошая идея для меня.

Другие вопросы по тегам