방법: 빌드 이벤트 지정(Visual Basic)How to: Specify build events (Visual Basic)

Visual Basic의 빌드 이벤트는 스크립트, 매크로 또는 기타 작업을 컴파일 프로세스의 일부로 실행하는 데 사용할 수 있습니다.Build events in Visual Basic can be used to run scripts, macros, or other actions as a part of the compilation process. 컴파일 전에 빌드 전 이벤트가 발생하고 컴파일 후에 빌드 후 이벤트가 발생합니다.Pre-build events occur before compilation; post-build events occur after compilation.

빌드 이벤트는 빌드 이벤트 대화 상자에 지정되며 프로젝트 디자이너컴파일 페이지에서 사용할 수 있습니다.Build events are specified in the Build Events dialog box, available from the Compile page of the Project Designer.

참고

Visual Basic Express는 빌드 이벤트의 항목을 지원하지 않습니다.Visual Basic Express does not support entry of build events. 전체 Visual Studio 제품에서만 지원됩니다.This is supported only in the full Visual Studio product.

빌드 전 및 빌드 후 이벤트를 지정하는 방법How to specify pre-build and post-build events

빌드 이벤트를 지정하려면To specify a build event

  1. 솔루션 탐색기에서 프로젝트를 선택한 상태에서 프로젝트 메뉴에서 속성을 클릭합니다.With a project selected in Solution Explorer, on the Project menu, click Properties.

  2. 컴파일 탭을 클릭합니다.Click the Compile tab.

  3. 빌드 이벤트 단추를 클릭하여 빌드 이벤트 대화 상자를 엽니다.Click the Build Events button to open the Build Events dialog box.

  4. 빌드 전 또는 빌드 후 작업에 대한 명령줄 인수를 입력한 다음 확인을 클릭합니다.Enter the command-line arguments for your pre-build or post-build action, and then click OK.

    참고

    .bat 파일을 실행하는 모든 빌드 후 이벤트 명령 앞에 call 문을 추가합니다.Add a call statement before all post-build commands that run .bat files. 예를 들어 call C:\MyFile.bat 또는 call C:\MyFile.bat call C:\MyFile2.bat로 이름을 지정할 수 있습니다.For example, call C:\MyFile.bat or call C:\MyFile.bat call C:\MyFile2.bat.

    참고

    빌드 전 또는 빌드 후 이벤트가 성공적으로 완료되지 않으면 성공적인 작업을 나타내는 0(영) 이외의 코드로 이벤트 작업이 종료되도록 하여 빌드를 종료할 수 있습니다.If your pre-build or post-build event does not complete successfully, you can terminate the build by having your event action exit with a code other than zero (0), which indicates a successful action.

예제: 빌드 후 이벤트를 사용하여 매니페스트 정보를 변경하는 방법Example: How to change manifest information using a post-build event

다음 절차에서는 빌드 후 이벤트에서 호출된 .exe 명령을 사용하여 응용 프로그램 매니페스트의 최소 운영 체제 버전을 설정하는 방법을 보여줍니다(프로젝트 디렉터리의 .exe.manifest 파일).The following procedure shows how to set the minimum operating system version in the application manifest using an .exe command called from a post-build event (the .exe.manifest file in the project directory). 최소 운영 체제 버전은 네 부분으로 구성된 번호입니다(예: 4.10.0.0).The minimum operating system version is a four-part number such as 4.10.0.0. 이를 위해 명령은 매니페스트의 <dependentOS> 섹션을 변경합니다.To do this, the command will change the <dependentOS> section of the manifest:

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

.exe 명령을 만들어 응용 프로그램 매니페스트를 변경하려면To create an .exe command to change the application manifest

  1. 명령에 대한 콘솔 응용 프로그램을 만듭니다.Create a console application for the command. 파일 메뉴에서 새로 만들기를 클릭한 다음 프로젝트를 클릭합니다.From the File menu, click New, and then click Project.

  2. 새 프로젝트 대화 상자의 Visual Basic 노드에서 콘솔 응용 프로그램 템플릿을 차례로 선택합니다.In the New Project dialog box, in the Visual Basic node, select Windows and then the Console Application template. 프로젝트 이름을 ChangeOSVersionVB로 지정합니다.Name the project ChangeOSVersionVB.

  3. Module1.vb에서 파일 맨 위의 다른 Imports 문에 다음 줄을 추가합니다.In Module1.vb, add the following line to the other Imports statements at the top of the file:

    Imports System.Xml
    
  4. 다음 코드를 Sub Main에 추가합니다.Add the following code in 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
    

    이 명령은 두 개의 인수를 사용합니다.The command takes two arguments. 첫 번째 인수는 응용 프로그램 매니페스트의 경로(즉, 빌드 프로세스에서 매니페스트를 만드는 폴더, 일반적으로 .publish)입니다.The first argument is the path to the application manifest (that is, the folder in which the build process creates the manifest, typically .publish). 두 번째 인수는 새 운영 체제 버전입니다.The second argument is the new operating system version.

  5. 빌드 메뉴에서 솔루션 빌드를 클릭합니다.On the Build menu, click Build Solution.

  6. .exe 파일을 C:\TEMP\ChangeOSVersionVB.exe와 같은 디렉터리에 복사합니다.Copy the .exe file to a directory such as C:\TEMP\ChangeOSVersionVB.exe.

    다음으로 빌드 후 이벤트에서 이 명령을 호출하여 응용 프로그램 매니페스트를 변경합니다.Next, invoke this command in a post-build event to change the application manifest.

빌드 후 이벤트를 호출하여 응용 프로그램 매니페스트를 변경하려면To invoke a post-build event to change the application manifest

  1. 프로젝트를 게시할 Windows 응용 프로그램을 만듭니다.Create a Windows application for the project to be published. 파일 메뉴에서 새로 만들기를 클릭한 다음 프로젝트를 클릭합니다.From the File menu, click New, and then click Project.

  2. 새 프로젝트 대화 상자의 Visual Basic에서 Windows 클래식 바탕 화면Windows Forms 앱 템플릿을 차례로 선택합니다.In the New Project dialog box, in the Visual Basic node, select Windows Classic Desktop and then the Windows Forms App template. 프로젝트 이름을 VBWinApp로 지정합니다.Name the project VBWinApp.

  3. 솔루션 탐색기에서 프로젝트를 선택한 상태에서 프로젝트 메뉴에서 속성을 클릭합니다.With the project selected in Solution Explorer, on the Project menu, click Properties.

  4. 프로젝트 디자이너에서 게시 페이지로 이동하고 게시 위치C:\TEMP로 설정합니다.In the Project Designer, go to the Publish page and set Publishing location to C:\TEMP.

  5. 지금 게시를 클릭하여 프로젝트를 게시합니다.Publish the project by clicking Publish Now.

    매니페스트 파일은 빌드되고 C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifest에 배치됩니다.The manifest file will be built and put in C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifest. 매니페스트를 보려면 파일을 마우스 오른쪽 단추로 클릭하고, 연결 프로그램, 목록에서 프로그램 선택, 메모장을 차례로 클릭합니다.To view the manifest, right-click the file and click Open with, then click Select the program from a list, and then click Notepad.

    파일에서 <osVersionInfo> 요소를 검색합니다.Search in the file for the <osVersionInfo> element. 예를 들어 버전은 다음과 같습니다.For example, the version might be:

    <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
    
  6. 프로젝트 디자이너에서 컴파일 탭으로 이동하고 빌드 이벤트 단추를 클릭하여 빌드 이벤트 대화 상자를 엽니다.In the Project Designer, go to the Compile tab and click the Build Events button to open the Build Events dialog box.

  7. 빌드 후 이벤트 명령줄 상자에서 다음 명령을 입력합니다.In the Post-build Event Command Line box, enter the following command:

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

    프로젝트를 빌드할 때 이 명령은 응용 프로그램 매니페스트의 최소 운영 체제 버전을 5.1.2600.0으로 변경합니다.When you build the project, this command will change the minimum operating system version in the application manifest to 5.1.2600.0.

    $(TargetPath) 매크로는 작성 중인 실행 파일에 대한 전체 경로를 나타냅니다.The $(TargetPath) macro expresses the full path for the executable being created. 따라서 $(TargetPath).manifestbin 디렉터리에서 만든 응용 프로그램 매니페스트를 지정합니다.Therefore, $(TargetPath).manifest will specify the application manifest created in the bin directory. 게시를 수행하면 이 매니페스트가 이전에 설정한 게시 위치에 복사됩니다.Publishing will copy this manifest to the publishing location that you set earlier.

  8. 프로젝트를 다시 게시합니다.Publish the project again. 게시 페이지로 이동하고 지금 게시를 클릭합니다.Go to the Publish page and click Publish Now.

    매니페스트를 다시 봅니다.View the manifest again. 매니페스트를 보려면 게시 디렉터리로 이동하고, 파일을 마우스 오른쪽 단추로 클릭하고, 연결 프로그램, 목록에서 프로그램 선택, 메모장을 차례로 클릭합니다.To view the manifest, go to the publish directory, right-click the file and click Open with and then Select the program from a list, and then click Notepad.

    버전은 다음과 같이 표시됩니다.The version should now read:

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

참고 항목See also