クリエイターの教科書

Excel, ChatGPT, Stable Diffusion, Visual Studioなどの教科書

【Visual Studioの教科書】インストーラのまとめ アイコンは?.NETランタイムを含めるには?

C#やVBなどで配布用のインストーラを作成する手順についてまとめていきます。基本的なやり方としては、インストール用プロジェクトを追加してビルドすることで作成できます。

アイコンを追加したり、ファイルを追加したりすると、思ったより作るのは手間ですが一度やれば慣れると思います。

インストーラを作るには?準備編

Gears

 

インストーラ機能の追加

拡張機能から「拡張機能の管理」を選びます。

f:id:apicode:20190710095241p:plain

 

「オンライン」から「Installer Projects」を選んでインストールします。

f:id:apicode:20190710095252p:plain

 

ビジュアルスタジオを一度終了させるとインストールが実行されます。

f:id:apicode:20190710095236p:plain

 

これでインストーラ作成が利用できるようになります。

 

この作業は1度やればいいようです。

プロジェクトを作るたびに再度やる必要はありませんでした。

 

アイコンの作成

配布プログラムではアイコンも自分で用意したいもの。

そのためには、ソリューションエクスプローラーから「追加>新しい項目」で「アイコンファイル」を実行します。

f:id:apicode:20190711085816p:plain

 

するとエディタが開くのでアイコンを編集します。

f:id:apicode:20200130094319p:plain

 

上に描画用のツールがあります。バケツツールを使って色を流し込むこともできます。

f:id:apicode:20200131105557p:plain

 

アイコンを自作するのが大変な人は、画像をコピペしてみると早いかもしれません。

色制限があるので再現性は100%とはいきませんが、一から書くよりは早いと思います。  

【Visual Studio2019】アイコン・エディタの使い方 - アプリの教科書

 

またそれ以外のアイコン専用ソフトで作ったアイコンも利用できます。

Greenfish icon editorはレイヤーなども使えてはかどる無料アプリです。 

【Visual Studio】アプリ用アイコンを作りに便利な無料ソフトは? - アプリの教科書

 

 

プロジェクトのバージョンとコンポーネント

バグ対処や機能追加のたびにバージョン数値を変更しておきましょう。

設定するにはプログラムのPropertiesを開きます。

「公開」のところに「バージョン」があるので設定します。

 

同ページには「必須コンポーネント」があるので.netframeworkのランタイムをセットアップに含めるにはチェックしておきましょう。

 

 

インストーラを作るには?実行編

keep the gears

 

セットアップの追加 

「ソリューション」を選択状態にします。

右クリックしてメニューから「追加>新しいプロジェクト」を実行します。

f:id:apicode:20190710095534p:plain

 

「Setup Project」を選びます。「setup」などのワードで検索すると見つけやすいです。

f:id:apicode:20190710095535p:plain

 

で、インストーラー用のプロジェクトを追加。

f:id:apicode:20190710095537p:plain

 

 

セットアップのプロパティ

セットアップ用のプロジェクトを選択してプロパティを変更します。

f:id:apicode:20200130094903p:plain

 

設定しておいたほうがいい箇所は以下になります。

  • ProductName:変更しないとSetup1のような名前で登録されてしまいます。
  • Manufactuller:発行元
  • Version:バグの問い合わせ等で便利ですのでバージョン管理番号は設定しておきましょう。

 

ファイルを追加する 

セットアップ用プロジェクトを選び、右クリックメニューから「View>ファイルシステム」を選ぶとファイルを追加する画面となります。

ここでは、

  • アプリを登録する「Application Folder」
  • ユーザのデスクトップ用の「Users desktop」
  • ユーザのプログラムメニュー用の「users programs menu」

...といった項目があります。それぞれに必要なファイルを追加します。 

f:id:apicode:20190710095541p:plain

 

 

アプリケーション

アプリを追加するには、「application folder」を選び、「Add」で「プロジェクト出力」を実行。

f:id:apicode:20190710095544p:plain

 

「プライマリ出力」を選んで追加します。

f:id:apicode:20190710095548p:plain

 

他、インストールしたいファイルやフォルダがあればApplication Folderに追加します。

フォルダは空だと作られないようですが、SetupのプロパティでAlwaysCreateをTrueにしておくと作ってくれるようです。

 

デスクトップ

アプリへのショートカットを作成します。

「UsersDesktop」を選択した状態で右側のペインで「新しいショートカットの作成」を実行。

f:id:apicode:20190711085236p:plain

 

あとはショートカット先のファイルを指定します。

ショートカット名を打ち直せばOK。

f:id:apicode:20190711085019p:plain

 

ただしこのまま作ると、ショートカットがEXEのあるディレクトリを開くだけでした。ショートカットでEXEを起動させるには以下のように作るとよさそうです。

 

まず「Application Folder」へ移動し、すでに追加している「プライマリ出力」のアイコンを右クリック。「Create shortcut to プライマリ出力...」を実行します。

f:id:apicode:20200131141428p:plain

 

こうして作ったショートカットを、名前を打ち直してデスクトップのフォルダーへドラッグアンドドロップで移動します。

こでデスクトップにはEXEを起動するショートカットが作られます。

f:id:apicode:20200131141623p:plain

 

デスクトップのショートカットのアイコン

作成したショートカットのプロパティをみると「Icon」の欄があります。アイコンの設定はこちらから行います。 

f:id:apicode:20210225094135p:plain

ICOファイルを直接指定する方法がわからなかったのですが、「ApplicationFolder」にアイコン用ICOファイルを先に追加しておきます。

あとはプロパティのIconから、ICOファイルを選べます。。

 

これで、インストール後にちゃんとアイコンが反映されていました。

 

プログラムメニュー

プログラムメニューは、スタート画面にあるメニューへショートカットを追加する設定です。

 

ファイルやショートカットの追加やアイコンの設定方法は、上記のデスクトップメニューの追加方法と一緒です。

 

 

セットアップEXEの作成(ビルド)

あとは普通にEXEを作る時のように「ビルド」を実行します。

ビルドしたEXEは、プロジェクト傘下のフォルダにできているはずです。

MSIを実行してみると、ウィザードが始まります。

f:id:apicode:20190710095554p:plain

 

 

インストールのテスト

完成するまでには、インストールの確認と、アンインストールを何度か繰り返すことになると思います。

 

これをいちいち「ビルド→EXE起動→確認→コンパネからアンインストール」では面倒です。

 

インストーラ用プロジェクトを右クリックすると「インストール」「アンインストール」があります。ここからインストールの実行とアンインストールを行って動作確認しましょう。

f:id:apicode:20190711091742p:plain

 

 

インストーラのQA・不具合

セットアップが見つからない?

以下に対応手順をまとめました。 

【Visual Studio】セットアップがみつからない? - アプリの教科書

 

 

インストール・アンインストールのメニューが出ない?

一度ビルドして作らないと出ないようです。

 

またビルドしてもメニューが非アクティブのままということがあって悩みました。

一度プロパティで構成を「アクティブ」から「Debug」へ指定しなおしリビルドしたらアクティブにになりました。このせいで治ったのか、バグなのかはまだよくわかりません。

 

ビルドできない?

ログでエラー「ERROR」が出たら、その内容をもとに対処していきます。

 

うちではなぜか「ERROR: The target of shortcut 'コマ送りで困ったー' is invalid. The 'AlwaysCreate' property of folder 'User's Programs Menu' must be set to 'True'」というエラーがでました。

 

プログラムメニューで「いつも作られる(AlwaysCreate)」の設定が「True」ではないというものです。

f:id:apicode:20200131104600p:plain

 

そこで設定を「True」にして再度ビルドしたら今度は大丈夫でした。

f:id:apicode:20200131104550p:plain

 

 

プロジェクトの依存関係を更新できません?

旧バージョンで起きるケースがあるようで、その場合はVisuaStudioのアップデート等で対処できると思います。

参考:https://support.microsoft.com/ja-jp/help/2286556/fix-error-message-when-you-build-a-visual-studio-2010-setup-project-un

 

「ビルドデータを手動で削除する」「ソリューションを一度削除して再追加してみる」などしてみましょう。

 

ランタイムを含めるには?

ドットネットフレームワークのランタイムを利用するような場合、インストーラにランタイムを含められるのでしょうか。

 

インストーラのプロパティを開き、さらに「Prerequeisites...」というボタンを押してみると...f:id:apicode:20190718162742p:plain

 

「必須コンポーネントをインストールするセットアッププログラムを作成する」というチェックがあります。

ここで「インストールする必須コンポーネントを選択」すればよさそうです。

f:id:apicode:20190718162744p:plain


インストーラがインストールしている途中で「ランタイムがない場合には入手」という手続きがでるようになるように思います。

 

実際に「setup.exe」を他機種で実行してみましょう。

すると、以下のように起動時に「インストールするコンポーネント」として「.Net Framework」のセットアップが始まりました。

f:id:apicode:20190730154153p:plain

 

setup.exe? msi?

インストーラを作ると「setup.exe」と「●●●.msi」の2つのファイルが作られます。

 

まず環境によっては「msi」は実行できないようです。

参考:http://bbs.wankuma.com/index.cgi?mode=al2&namber=42432&KLOG=73

 

またドットネットフレームワークのインストールを実行してからインストーラである「msi」を実行するため、「setup.exe」が必要となるようです。

参考:https://kaorun.hatenablog.com/entry/20151219/1450511313

 

結局2つのファイルをそのまま入れておいてZIP化してまとめてから配布というのがいいのではないかと思います。

 

リリース版、デバッグ版の管理は?

構成マネージャーから確認・設定するといいです。 

f:id:apicode:20200130102032p:plain

 

 

EXEがインストール後のフォルダ内に生成されていない?

インストールされたフォルダにEXEがないという不思議な現象がありました。

まだ未解決ですが経緯はこちらにまとめておきます。

www.kyoukasho.net

 

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ