Публикация Версии против Сборки (и т. Д.) Версии
Я читал темы о сборочных, файловых и сборочных информационных версиях.
Я хотел бы знать, куда входит версия для публикации. Результат...
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 в качестве версии продукта. Но опубликовать версию не очень хорошая идея для меня.