本ブログはアフィリエイト広告を利用しています。

Visual Studio Installer Projectsでインストーラを作成する

setup-project-select プログラミング

せっかくなので PyInstallerでPythonプロジェクトをexe化 で作成したexeファイルのインストーラを作成してみます。

Installer Projectsのインストール手順

Visual Studioのメニューの 拡張機能 – 拡張機能の管理 をクリックし、出てきたウインドウでオンラインを選択、右側にある検索に”Installer Projects”と入力します。
検索結果から”Visual Studio Installer Projects 2022″をダウンロードしてインストールを行います。
完了後、Visual Studioを再起動する必要があります。

インストーラ設定

Visual Studioを起動して “新しいプロジェクトの作成” からテンプレート検索で “Setup Project” を選択します。

setup-project-select

初期表示だとファイルシステムが開きます。

setup-project-filesystem

ここら辺を設定していきインストーラを作成します。
今回はC#等で作成したものではなくPython –> exe化したファイルを使用していきます。

  1. Application Folderを右クリック –> Add –> ファイルと選択し、exeファイルを指定
  2. config, dataフォルダも必要なのでApplication Folderを右クリック –> Add –> Folderでそれぞれのフォルダを作成
  3. 作成したフォルダにjsonファイルを格納する。追加手順はexeファイルの時と同様

基本的には上記を設定すればインストーラが作成できますが、もう少しだけ設定を追加していきます。

デスクトップにショートカットを作成

Application Folderに追加したexeファイルを右クリック –> Create Shortcut to XXX.exe
作成されたショートカットをUser’s Desktopに移動させます。
次にUser’s Desktopを右クリック –> プロパティウインドウを選択し、AlwaysCreateをTrueに変更します。

users-desktop-properties

これがFalseのままだと以下のようなエラーが出ます。

ERROR: The target of shortcut 'Shortcut to User's Desktop' is invalid.  The 'AlwaysCreate' property of folder 'User's Desktop' must be set to 'True'

スタートメニューに追加

Application Folderに追加したexeファイルを右クリック –> Create Shortcut to XXX.exe
作成されたショートカットをUser’s Programs Menuに移動させます。
こちらもデスクトップのショートカットと同様にプロパティのAlwaysCreateをTrueに変更します。
変更されていない場合は以下のようなエラーが出ます。

ERROR: The target of shortcut 'TestPJ' is invalid.  The 'AlwaysCreate' property of folder 'User's Programs Menu' must be set to 'True'

インストール先のフォルダ名

Application Folderのプロパティを見ると DefaultLocationは以下のようになっています。

[ProgramFilesFolder][Manufacturer]\[ProductName]

これだとデフォルトで “C:\Program Files (x86)\Default Company Name\”にインストールされます。
Default Company Nameは良くないので変更します。

ソリューションエクスプローラーでTestSetupをクリックしてプロパティを見るとManufacturerがあるのでここで変更できます。
“C:\Program Files (x86)[ここが変更した値になる]\”

solution-property

ビルド

あとは普通にソリューションをビルドするとDebugやReleaseフォルダに出来上がります。
ソリューションエクスプローラーで右クリック –> インストールでもインストール可能です。

installer

以上です。

コメント

タイトルとURLをコピーしました