見出し画像

TWSNMPのインストーラーの作り方(Windows版)

インストラーを作るツールの話を

に書きました。今回は、このツールを使ってWindows版のインストーラーを作る方法について書きます。

に詳しい説明がありますが、ポイントが分かりにくいのでショートカットしたい人向けの解説です。

インストーラーを作る流れ

大体、こんな感じです。

・WiX Toolsetをインストールする。
・インストーラーに必要なファイルを準備する。
・XMLの定義ファイルを作成する。
・WiX Toolsetのコマンドでビルドする。
・できたインストーラーを試してみる。

WiX Toolsetをインストールする

WiX Toolsetは、

にあります。最新版をダウンロードして、インストールすればよいです。

にインストールなどの手順が詳しく書かれています。

インストーラーに必要なファイルを準備する

TWSNMPの場合はWindowsの実行(EXE)ファイルだけあればプログラムを実行できます。go-astilectronで開発しているので必要なファイルをすべてEXEファイルの中に組み込んでいるからです。なので、EXEファイルだけでもインストーラーを作ることができます。でも、もう少しオリジナル製品のインストーラーぽくするために必要なファイルもあります。
まとめると

・TWSNMPの実行(EXE)ファイル
・ライセンスファイル
・バナー画像ファイル
・ダイアログ画像ファイル

画像1

ライセンスファイルは、プログラムのライセンスを書いたRTF(リッチテキスト)形式のファイルです。RTF形式のファイルは、WindowsならばWordpad、Miscrosoft Wordで、Macならば、テキストエディタで編集できます。画像ファイルは、古くからWindowsの画像ファイルの標準であるBMP(ビットマップ)形式です。


画像のサイズやファイル形式の参考に、実際のファイルをアップロードしておきます。
ライセンスファイル

バナー画像

ダイアログ画像

XMLの定義ファイルを作成する

WiX Toolsetは、インストーラーをXML形式のファイルで定義します。まずは、実際のファイルを見てください。

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
 <Product Name="TWSNMP Manager"  
         Manufacturer="Masayuki Yamai"
         Id="b4bc1036-c4e3-4d24-b7a7-dea38791d7e8"
         UpgradeCode="16ff6a45-4429-4a6b-869e-9a1a9fed5039"
         Language='1041' Codepage='932'
         Version="5.0.0.3">
   <Package Id='*' Keywords='Installer'  
     Description="TWSNMP 5.0.0-beta.3" 
     Comments="TWSNMP 5.0.0-beta.3"
     Languages='1041' SummaryCodepage='932'
     InstallerVersion="100" Compressed="yes" />
   <Media Id="1" Cabinet="twsnmp.cab" EmbedCab="yes" />
   <Directory Id="TARGETDIR" Name="SourceDir">
     <Directory Id="ProgramFilesFolder" Name="PFiles">
       <Directory Id="TWSNMP" Name="TWSNMP">
         <Component Id="MainExecutable" 
           Guid="18fad287-b9c6-48ed-9044-02a52baaec16">
           <File Id="TWSNMP.EXE" 
                 Name="TWSNMP.EXE"
                 DiskId='1' KeyPath='yes'
                 Source="Z:\TWSNMP\TWSNMP.EXE">
             <Shortcut Id="ExeShortcut" Directory="ProgramMenuDir" 
               Name="TWSNMP" Advertise="yes" Icon="TWSNMP.EXE" IconIndex="0" />
           </File>
         </Component>
       </Directory>
     </Directory>
     <Directory Id="ProgramMenuFolder">
       <Directory Id="ProgramMenuDir" Name="TWSNMP">
         <Component Id="StartMenuShortcuts" Guid="fd59c661-dfdf-4aeb-b58f-0c7ac164f4d4">
             <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
             <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" />
         </Component>
         </Directory>
     </Directory>
   </Directory>
   <Feature Id="DefaultFeature" Title="Main Feature" Level="1">
     <ComponentRef Id="MainExecutable" />
     <ComponentRef Id="StartMenuShortcuts" />
   </Feature>
   <UI />
   <UIRef Id="WixUI_Minimal" />
   <Icon Id="TWSNMP.EXE" SourceFile="Z:\TWSNMP\TWSNMP.EXE" />
   <WixVariable Id="WixUILicenseRtf" Value="Z:\TWSNMP\lic.rtf" />
   <WixVariable Id="WixUIBannerBmp" Value="Z:\TWSNMP\Banner.bmp" />
   <WixVariable Id="WixUIDialogBmp" Value="Z:\TWSNMP\Dialog.bmp" />
 </Product>
</Wix>

TWSNMPのインストーラーは、これだけの定義で作れます。
でも、最初は何書いてあるかわからないので難しそうに見えると思います。私もそうでした。私は、まず、チュートリアルを真似して作ってみてとりあえず動作するようにしました。わからないところは後からマニュアルを読んでちょっとずつ理解しました。最初から全部理解して作りたい人も多いと思いますが、頑張ってくださいとしか言えませんが、手っ取り早く、自分のプログラムのインストーラー作ってみたい人は、このXMLの定義を編集して作ってみるのがよいと思います。大抵のものはできると思います。

自分用に編集するコツは、

・TWSNMPという文字を自分のプログラムに置き換える。
・5.0.0というバージョンも自分のプログラムのバージョンに置き換える。
・作者の名前を自分の名前に置き換える。
・Z:\TWSNMP\から始まる部分は、実際のファイルのパスに置き換える。
・GUID(UUID)は、独自のものに置き換える。

です。
最後のGUID(UUID)は、”18fad287-b9c6-48ed-9044-02a52baaec16”のような部分です。

このまま、同じ値を使うとTWSNMPと同じプログラムになってしまいます。たぶん、TWSNMPをインストールしているパソコンにインストールできなくなると思います。なので、独自のものに変える必要があります。でも、どこかに申請して発行してもらう必要はありません。自分で作ればよいです。
Windowsで作るためには、PowerShellで

[Guid]::NewGuid()

のコマンドを実行すればよいようです。

でも私は、Visual Studio Codeの

を使っています。

ちなみに、GUIで、XMLの定義ファイルを作成するツールもあります。

試してみましたが、私にはちょっと馴染めないものでした。

XMLの定義ファイルも参考のためにアップロードしておきます。

WiX Toolsetのコマンドでビルドする

必要なファイルとXMLの定義ファイルの準備ができたら、WiX Toolsetのコマンドでインストーラーをビルドします。私は、バッチファイルを作っています。

candle -nologo twsnmp.wxs -out twsnmp.obj -ext WixUIExtension
light -nologo twsnmp.obj -out twsnmp.msi -ext WixUIExtension  -cultures:ja-JP

注意するのは、コマンドにパスが通っていることです。
エラーがあれば、ここで表示されます。

できたインストーラーを試してみる

うまくビルドできたらtwsnmp.msiというファイル があると思います。これをダブルクリックすれば、インストーラーが起動すると思います。

つづく

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

有難き幸せ!
1
私は、TWSNMP Managerの開発者です。 20年以上前に作ったソフトを、いまだに多くの人に使っていただけて、幸せに思っています。 最近、新しい技術でTWSNMP Managerの復刻版の開発を行っています。 開発日誌やマニュアルをnoteに書いています。

この記事が入っているマガジン

TWSNMPの作り方
TWSNMPの作り方
  • 28本

TWSNMPを開発する時に調べたこと、試してみたこと、見つけた便利ツールについて書いているマガジンです。これからプログラマーを目指す人に、まったく、何もないところからTWSNMPのようなソフトウェアを作る時に、私がどのように考えて、何を調べて、どう判断したかをお知らせできればと思っています。

コメントを投稿するには、 ログイン または 会員登録 をする必要があります。