Автоматически увеличенный номер редакции не отображается в поле «О программе».

У меня есть небольшое приложение VB.NET, над которым я работаю, используя полную версию Visual Studio 2005. В свойствах публикации проекта для него установлено значение « Автоматически увеличивать ревизию при каждой публикации» .

Проблема в том, что он только увеличивает ревизию в установочных файлах. Похоже, что он не обновляет номер версии в окне About Box (это стандартный встроенный шаблон About Box). Этот номер версии, похоже, исходит от My.Application.Info.Version .

Что я должен использовать вместо этого, чтобы мой автоматически увеличивающийся номер редакции отображался в поле about?

14.08.2008 16:25:12
5 ОТВЕТОВ
РЕШЕНИЕ

Измените код поля «О программе» на

Me.LabelVersion.Text = String.Format("Version {0}", My.Application.Deployment.CurrentVersion.ToString)

Обратите внимание, что все остальные ответы правильны для «как мне получить мою версию сборки», а не для заданного вопроса «как мне показать мою версию для публикации».

1
14.08.2008 17:06:14
Кажется, это работает только в развернутом приложении. Я получаю исключение развертывания при отладке изнутри Visual Studio. (Это хорошо, достаточно легко обойти. Просто для справки для других)
Mark Biek 9.06.2012 03:18:57

Я не эксперт по VB.NET, но вы пытались установить значение, например, 1.0.0. *? Это должно увеличить номер редакции (по крайней мере, это происходит в AssemblyInfo.cs в C #).

0
14.08.2008 16:29:30
@Pratik Будьте осторожны с 1.0.0. *. Это максимальное значение, я думаю, 2 ^ 16
Rad 14.08.2008 16:44:51

Опция, которую вы выбираете, предназначена только для обновления номера установки. Чтобы обновить номер программы, вы должны изменить AssemblyInfo.

C # [Assembly: AssemblyVersion ("XY ")] [Assembly: AssemblyFileVersion ("XY ")]

Сборка VB.NET: AssemblyVersion ("XY *")

0
14.08.2008 16:29:45

Мне потребовалась секунда, чтобы найти это, но я считаю, что это то, что вы ищете:

using System;
using System.Reflection;
public class VersionNumber
{
   public static void Main()
   {
      System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
      Version version = assembly.GetName().Version;
      Console.WriteLine ("Version: {0}", version);
      Console.WriteLine ("Major: {0}", version.Major);
      Console.WriteLine ("Minor: {0}", version.Minor);
      Console.WriteLine ("Build: {0}", version.Build);
      Console.WriteLine ("Revision: {0}", version.Revision);
      Console.Read();
   }
}

Он был основан на коде, представленном на следующем сайте - http://en.csharp-online.net/Display_type_version_number

1
14.08.2008 16:41:22

Это максимум 65535 для каждого из 4 значений, но при использовании 1.0. * Или 1.0. *. * Компоновщик сборки будет использовать закодированную временную метку (так что это не простое автоинкремент, и он может повториться!), Что будет соответствовать 65535.

Смотрите мой ответ на этот вопрос для получения дополнительных ссылок и деталей.

0
23.05.2017 10:32:51