Поделиться через


Практическое руководство. Указание событий построения (Visual Basic)

События построения в Visual Basic можно использовать для выполнения скриптов, макросов или других действий как часть процесса компиляции. События до построения происходят перед компиляцией; события после построения происходят после компиляции.

События построения указываются в окне События построения, доступном из страницы Компиляция в Конструкторе проектов.

Как указать события до построения и после построения

Чтобы указать событие построения

  1. Выбрав проект в Обозревателе решения, в меню Проект выберите команду Свойства.

  2. Перейдите на вкладку Compile.

  3. Нажмите кнопку События построения для открытия диалогового окна События построения.

  4. Введите аргументы командной строки для действий перед построением и после него и нажмите кнопку ОК.

    Примечание

    Добавьте оператор call перед всеми командами после построения, запускающими файлы с расширением BAT.Например, call C:\MyFile.bat или call C:\MyFile.bat call C:\MyFile2.bat.

    Примечание

    Если созданные события перед построением или события после построения не выполняются успешно, можно прервать построение: нужно выполнить выход действия события с кодом, отличающимся от нуля (0), что означает успешное действие.

Например: как изменить данные манифеста с помощью событий после построения

В следующей процедуре показана установка версии минимальной операционной системы в манифесте приложения с помощью команды .exe, вызываемой событием после построения (.exe.manifest файл в каталоге проекта). Минимальная версия операционной системы — это число из четырех частей, например 4.10.0.0. Для этого команда изменит раздел <dependentOS> манифеста.

<dependentOS>
   <osVersionInfo>
      <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
   </osVersionInfo>
</dependentOS>

Чтобы создать команду .exe для изменения манифеста приложения

  1. Создайте консольное приложение для команды. В меню Файл щелкните Создать и нажмите кнопку Проект.

  2. В диалоговом окне Новый проект в узле Visual Basic выберите Windows, а затем шаблон Консольное приложение. Назовите проект ChangeOSVersionVB.

  3. В модуле Module1.vb добавьте следующую строку для других инструкций Imports в верхней части файла:

    Imports System.Xml
    
  4. Добавьте следующий код в Sub Main:

    Sub Main()
       Dim applicationManifestPath As String
       applicationManifestPath = My.Application.CommandLineArgs(0)
       Console.WriteLine("Application Manifest Path: " & applicationManifestPath.ToString)
    
       'Get version name
       Dim osVersion As Version
       If My.Application.CommandLineArgs.Count >= 2 Then
          osVersion = New Version(My.Application.CommandLineArgs(1).ToString)
       Else
          Throw New ArgumentException("OS Version not specified.")
       End If
       Console.WriteLine("Desired OS Version: " & osVersion.ToString())
    
    
       Dim document As XmlDocument
       Dim namespaceManager As XmlNamespaceManager
       namespaceManager = New XmlNamespaceManager(New NameTable())
       With namespaceManager
          .AddNamespace("asmv1", "urn:schemas-microsoft-com:asm.v1")
          .AddNamespace("asmv2", "urn:schemas-microsoft-com:asm.v2")
       End With
    
       document = New XmlDocument()
       document.Load(applicationManifestPath)
    
       Dim baseXPath As String
       baseXPath = "/asmv1:assembly/asmv2:dependency/asmv2:dependentOS/asmv2:osVersionInfo/asmv2:os"
    
       'Change minimum required OS Version.
       Dim node As XmlNode
       node = document.SelectSingleNode(baseXPath, namespaceManager)
       node.Attributes("majorVersion").Value = osVersion.Major.ToString()
       node.Attributes("minorVersion").Value = osVersion.Minor.ToString()
       node.Attributes("buildNumber").Value = osVersion.Build.ToString()
       node.Attributes("servicePackMajor").Value = osVersion.Revision.ToString()
    
       document.Save(applicationManifestPath)
    End Sub
    

    Команда принимает два аргумента. Первый аргумент – путь к манифесту приложения (т.е., папка, в которой в процессе построения создается манифест, обычно Projectname.Publish). Вторым аргументом является новая версия операционной системы.

  5. В меню Построение выберите Построить решение.

  6. Скопируйте .exe файл в каталог, например C:\TEMP\ChangeOSVersionVB.exe.

Далее, внесите эту команду в событие после построения для изменения манифеста приложения.

Чтобы вызвать событие после построения для изменения манифеста приложения

  1. Создайте приложение Windows для проекта, который должен быть опубликован. В меню Файл щелкните Создать и нажмите кнопку Проект.

  2. В диалоговом окне Новый проект в узле Visual Basic выберите Windows, а затем шаблон Приложение Windows. Назовите проект VBWinApp.

  3. Выберите проект в Обозревателе решения, а затем в меню Проект щелкните Свойства.

  4. В Конструкторе проектов перейдите на страницу Публикация и задайте Расположение публикации C:\TEMP\.

  5. Опубликуйте проект, щелкнув Опубликовать сейчас.

    Файл манифеста будет построен и помещен в C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifest. Для просмотра манифеста щелкните правой кнопкой мыши файл и нажмите кнопку Открыть с помощью, а затем щелкните Выбирать программу из списка и выберите Блокнот.

    Найдите в файле элемент <osVersionInfo>. Например, версия может быть:

    <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
    
  6. В Конструкторе проектов перейдите к вкладке Компиляция и нажмите кнопку События построения для открытия диалогового окна События построения.

  7. В поле События командной строки после сборки введите следующую команду:

    C:\TEMP\ChangeOSVersionVB.exe « $ (TargetPath) manifest »5.1.2600.0

    При построении проекта эта команда приведет к изменению в манифесте приложения версии минимальной операционной системы на 5.1.2600.0.

    Макрос $(TargetPath) воспроизводит полный путь к создаваемому исполняемому файлу. Поэтому $(TargetPath).manifest будет указывать манифест приложения, созданный в папке Bin. Публикация скопирует этот манифест в расположение публикаций, которое было установлено ранее.

  8. Опубликуйте проект еще раз. Перейдите на страницу Публикации и выберите Опубликовать сейчас.

    Просмотрите манифест еще раз. Чтобы просмотреть манифест, перейдите в каталог публикаций, щелкните правой кнопкой мыши файл и нажмите кнопку Открыть с помощью и затем Выбрать программу из списка, затем Блокнот.

    Теперь версия должна быть:

    <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
    

См. также

Задачи

Практическое руководство. Назначение событий построения (C#)

Ссылки

Страница "Компиляция" в конструкторе проектов (Visual Basic)

Страница публикации в конструкторе проектов

Диалоговое окно "Командная строка события "После построения"" или "Командная строка события "До построения""

Другие ресурсы

Управление свойствами компиляции