方法 : ビルド イベントを指定する (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. ビルド前またはビルド後のアクションのコマンドライン引数を入力し、[OK] をクリックします。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 などの 4 つの部分に分かれた数字です。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] ノードで、[Windows][コンソール アプリケーション] テンプレートの順に選択します。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  
    

    このコマンドは 2 つの引数を受け取ります。The command takes two arguments. 最初の引数はアプリケーション マニフェストへのパス (つまり、ビルド処理でマニフェストが作成されるフォルダー。通常は Projectname.publish) です。The first argument is the path to the application manifest (that is, the folder in which the build process creates the manifest, typically Projectname.publish). 2 番目の引数は新しいオペレーティング システムのバージョンです。The second argument is the new operating system version.

  5. [ビルド] メニューの [ソリューションのビルド]をクリックします。On the Build menu, click Build Solution.

  6. C:\TEMP\ChangeOSVersionVB.exe などのディレクトリに .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 フォーム アプリケーション] テンプレートの順に選択します。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).manifest と記述すると、bin ディレクトリに作成されるアプリケーション マニフェストが指定されます。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

コンパイル プロパティの管理 Managing Compilation Properties
[コンパイル] ページ、プロジェクト デザイナー (Visual Basic) Compile Page, Project Designer (Visual Basic)
[発行] ページ (プロジェクト デザイナー) Publish Page, Project Designer
[ビルド前に実行するコマンド ライン] / [ビルド後に実行するコマンド ライン] ダイアログ ボックス Pre-build Event/Post-build Event Command Line Dialog Box
方法 : ビルド イベントを指定する (C#)How to: Specify Build Events (C#)