Visual Studioで作成したWindows Formアプリケーションのインストーラ作成方法を備忘録としてまとめてみた。

 

setup

過去にも自作ソフトを配布する際、何度かインストーラを作成して配布していたこもあったけど、ここ最近は、インストーラを作成せず、exeなどをzipで固めて配布していた。
その方が楽だし、利用者も抵抗感が少ないと思ったから。

でも、たまに実行権限の問題や、スタートアップ登録方法など問い合わせを受けることもある。
場合によっては、インストーラ付きでの配布を求められるシーンもある。
そんな訳で、また忘れてしまうであろうインストーラ作成方法をメモっておくことに。


 

昔はVisual Studioでセットアッププロジェクト(msi形式のインストーラ)を簡単に作成できたけど、
Visual Studio 2012以降では、セットアップ プロジェクトが無くなり、ウィザードでインストーラ作成(ディプロイメント)することが出来なくなってしまった。

当時、困って調べたらセットアッププロジェクトに代わり、InstallShield Limited Editionを使ってインストーラを作れることが分かった。
Excelを使ったプログラムとインストーラの作成

なので、今回もInstallShieldを使って作ろうと思ったんだけど、Visual Studio 2017 Community 2017ではInstallShield Limited Editionが無くなっている。
これからは、やっぱりInstallShieldの時代の時代で、皆さんちゃんと有料版使ってインストーラ作ってくださいって流れなのかな。

でも、何とかコストをかけずに気軽にインストーラ作れないか調べてみたところ、一度無くなった(と思われていた)msi形式のインストーラ作成用のコンポーネント(Visual Studio Installer Projects)が復活していた。
簡単なインストーラしか作成できないけど、これで十分。
だいぶ使い方を忘れてしまったので、自分用のメモとしても使い方を残しておくことに。

 

Visual Studio Installer Projectsの追加

何はともあれ、Visual Studio 2017に、[Visual Studio Installer Projects]を追加してみる。

 
Visual Studioを起動し、[ツール]>[拡張機能と更新プログラム]メニューを開く。
[ツール]>[拡張機能と更新プログラム]
 

「拡張機能と更新プログラム」ダイアログが表示されるので、画面左側のツリーから「オンライン」を選択し、画面右上の検索ボックスで「Installer Projects」を指定し検索。
すると、「Microsoft Visual Studio 2017 Installer Projects」が引っ掛かるので、これを「ダウンロード」。
Microsoft Visual Studio 2017 Installer Projects
 

ダイアログと、Visual Studioを閉じるとインストールが始まる。
インストール
 

これでVisual Studio Installer Projectsのインストールは完了。
Visual Studio Installer Projectsのインストール完了
 

Windowsアプリケーションの作成

こちらは、既に作成済みと思うので割愛。
 

参考:
Hello World!作成

 

インストーラ作成

そして、ここから今回の肝となるインストーラの作成の手順。
 

  1. ソリューションを開く
    Visual Studioを起動し、あらかじめ作成したWindowsアプリケーションを開く。
    (または、エクスプローラーからソリューションのファイル *.sln ダブルクリック)
    Windowsアプリケーションを開く
     

  2. プロジェクトの追加
    画面右側にある「ソリューションエクスプローラー」のツリー一覧の中から、一番トップにある「ソリューション」を右クリックし、ポップアップメニュー「追加」>「新しいプロジェクト」を選択。
    「追加」>「新しいプロジェクト」
     

  3. プロジェクトの種類選択
    「Setup Project」を選択し[OK]ボタン押下。
    Setup Project

     
    すると、ソリューションの中に作成したセットアップ用のプロジェクトが追加される。
    Setup1が追加される
     

  4. ファイルシステムの編集
    まずは、ファイルシステムから設定を行う。
    上記流れで、既に「Files System(Setup名)」タブが表示されていると思うが無い場合は、「ソリューションエクスプローラー」のセットアップ(Setup1)を右クリックし、ポップアップメニューで[View]>「ファイルシステム」を選択すると表示できる。
    ファイルシステム
     

    最初に以下の3つのフォルダが用意されている。
    主な役割は以下のような感じ。

    • Application Folder
      作成したアプリケーション(exe,dllなど)のコピー先などをここで指定する。
      “C:\Program Files\ApplicationName\Application.exe”など

    • User’s Desktop
      ユーザーのデスクトップにコピーするものを指定。
      プログラムのショートカットなどあれば指定。
      デスクトップに配置

    • User’s Program Menu
      ユーザーのプログラムメニューに追加するものを指定。
      プログラムのショートカットなどを指定。

     

  5. アプリケーションフォルダの設定
    「Application Folder」を右クリックし、ポップアップメニュー[Add]>[プロジェクト出力]を選択。
    プロジェクト出力
     

    「プロジェクト出力グループの追加」ダイアログが表示されるので、そこで「プライマリ出力を選択。
    すると、Windowsアプリケーションで作成したexeやdllなどをインストール対象として含んでくれる。
    あと「構成」は「Release」を選択。
    プロジェクト出力グループの追加
     

    exeなど以外にも、例えばヘルプファイルや、Readmeなどもインストールに含めておきたい場合、同様に、[Application Folder]を右クリックし、ポップアップメニュー[Add]>[ファイル]を選択。
    そこで、ヘルプファイルやReadmeファイルなどを指定し追加。
    ヘルプファイルやReadmeファイルなどを指定し追加
     

  6. ユーザーのデスクトップの設定
    デスクトップにアプリのショートカットを作成したい場合などは、こちらを編集する。
    今回は割愛。やり方は次の「ユーザーのプログラムメニューの設定」とほぼ同じ。
     

  7. ユーザーのプログラムメニューの設定
    今度はWindowsのスタートメニューに登録する情報を設定する。
     

    「User’s Programs Menu」を右クリックし、ポップアップメニュー[Add]>[Folder]を選択。
    User's Programs Menu
     

    フォルダ名を変更。(今回はアプリケーション名である”RSS速報”という名に変更)
     

    更に、作成したフォルダが選択された状態で、右側のListView画面を右クリックし、ポップアップメニュー[新しいショートカットの作成]を選択。
    新しいショートカットの作成
     

    「Select Item in Project]ダイアログが表示されるので、そこでリストの中から”Application Folder”を選択後、”プライマリ出力 from ~(Release Any CPU)”を選択し[OK]押下。
    Select Item in Project
     

    メイン画面に戻り、追加された”Shortcut to プライマリ出力 from ~”を選択し、画面右側のプロパティで、[Name]を上記名前から、任意のショートカット名に変更する。
    (ここでは、アプリ名の”RSS速報”に改名)
    Name
     

    次に、表示するアイコンも変更する。
    上記、[Name]同様に、プロパティの一覧にある[Icon]をダブルクリック。
    表示された「Icon」ダイアログの[Browse…]ボタンを押下し、
    Icon
     

    「Select Item in Project」ダイアログで、アイコンの参照先である”Application Folder”をダブルクリック後、[File of Type]で”Execute Files(*.exe)”を選択。
    すると一覧に”プライマリ出力 from ~(Release Any CPU)”などが表示されるので、これを選択し[OK]押下。
    Select Item in Project
     

    [Icon]ダイアログに戻ると、exeファイル内にあったアイコンが表示されているので、このアイコンを選択し[OK]押下。
    Icon
     

    これで、exeのショートカットがプログラムメニューの方にも登録された。
     

    更に、ヘルプ、Readme追加も同じような感じで設定する。
    Readme
     

    これで必要最小限の設定は完了。
     

  8. 名前の変更
    最後に、セットアッププロジェクトのプロパティを一部修正する。
     

    [ソリューション エクスプローラー]で”Setup1″を選択し、その下のプロパティ一覧で必要に応じて以下の情報を修正する。
     

    ・Author
    ・Manufacturer
    ⇒これらメールアドレスだったので必要に応じて修正
     

    ・ProductName
    ・Title
    ⇒セットアップのプロジェクト名から、アプリケーション名に変更(今回は”Setup1″⇒”RSS速報”)
    Author
     

  9. インストーラを作成
    設定が終わったので、いよいよインストーラの作成。
    「ソリューション エクスプローラー」で今回作成したセットアッププロジェクト(ここでは”Setup1″)を右クリックし、ポップアップメニュー[ビルド]を選択。
    ビルド
     

    これで、Setup1\Releaseフォルダ配下にも、”setup.exe”と”Setup1.msi”ファイルが作成される。
    etup1.msi
     

  10. インストーラの実行(テスト)
    作成されたインストーラを試す場合、”setup.exe”を実行してみる。(msiが使えるPCであればmsi側でもOK)
    それか、先ほどのVisual Studio上で”Setup1″のプロジェクトを右クリックし、ポップアップメニュー[インストール]を実行してみてもOK。
    インストール
    インストール
     

    セットアップウィザードへようこそ
    セットアップウィザードへようこそ
     

    インストールフォルダの選択
    インストールフォルダの選択
     

    インストールの確認
    インストールの確認
     

    インストールが完了しました。
    インストールが完了しました。
     

    これでインストール完了。
    プログラムメニューにも登録されている。
    プログラムメニュー
     

    アンインストールする場合は、インストール時同様、Visual Studio上のポップアップメニューから「アンインストール」を選択するか、再度、エクスプローラーから”setup.exe”を実行するか、一般のアプリ同様、コントロールパネル>プログラムのアンインストールから実行する。

 
 

SSL対応

今更ながら、ホームページをSSL化しました。

なので、HPアドレスが
https://www.osadasoft.com/
から、
https://www.osadasoft.com/
に変わりました。
 

「http」から「https」に変わっただけだけで、一応、旧アドレスでもアクセス可能だけども。

リンク紹介やブックマーク登録していただいている方、変更を願いします。m(_ _)m

https://osadasoft.com/
でもよいです。

 

SSL化はセキュリティ的にも、Google検索のSEO的にも、必要で、更にiPhoneアプリとの通信はSSL必須となったことや、諸々の理由で必要とは認識していたけどサボってた。

 

そして、何より、今、密かに試作しているJavaScript(ここではないHP)からのGPS情報取得がSSL対応していないドメインからの動作ではうまく動かないことが判明し、これを機に重い腰を上げSSL化することに。

 

SSL化するのって、ファイル移動したり、定義ゴリゴリ修正したり、しかるべきところに、お金払って証明書やらなんやら用意してもらったり、労力とお金かかるだろうなと勝手に思っていたけど、意外と簡単だった(ロリポップの場合)。
先にやっておけばよかった。

食わず嫌いで、何も調べず触れずにいた。

 
 
(さらに…)

今年は富士登山諦めていたけど、急遽、富士山登ってみたい!という友人と登ることになった。

富士登山
今回は須走口→山頂(お鉢巡り)→須走口のルート。

 
(さらに…)

8/9(水)~8/15(火)の期間、横浜のカップヌードルミュージアムパークと、
赤レンガパークの2会場で「ピカチュウ大量発生チュウ」と連動して
ポケモンGOでは「ポケモンGOパーク」が同時開催するということで
暇つぶしにポケモン捕まえに行ってみた。

横浜ポケモンGOパーク

 
(さらに…)

C#で、Windowsフォームの角を丸くして表示する方法。
 

普通のWindowsフォームは、タイトルバーとか境界線が付き、角も角ばっている。
角ばったWindowsフォーム

 

それを、こんな感じに角を丸くして表示する。
フォームの角を丸くする

 
(さらに…)

LE-5050TS4K-BK
ドン・キホーテから6/15発売された『50V型 ULTRAHD TV 4K液晶テレビ』を買ってみた。
お値段は情熱価格ということで、54,800円(税抜)。

テレビ買い替えは、まだ完全に4K放送始まってからでいいかなぁ。
なんて思いつつ、4K買うことを見越して4K対応のPlayStation4 Proを去年買ってたし、欲しいには欲しかった。

 
 
(さらに…)

何ページも情報があるWebサイトなどで、いちいち次ページへのリンクをクリックしページ遷移するのが煩わしい場合がある。

ページをリロードせず、TwitterやFacebookのように一番下までスクロールしたとき、自動的に次ページを読み込み表示するWebページを作ってみた。

autopager

(さらに…)

ポケモンGO、まだやってます。
でも、全然レベル上がらない。

あまりにも上がらないので、このペースでいくと、どのぐらいで次のレベルに上がるのか計算する実験用のWebページを作ってみた。

ポケモンGO レベルアップ予想計算

ポケモンGO レベルアップ予想計算

使い方は簡単。
「始めた日」と「TOTAL XP」を入力するだけ。

 

(さらに…)

デアゴスティーニからF1マシンコレクションが出たので早速購入してみた。
F1マシンコレクション・マクラーレンホンダMP4/4

前にも、
週刊マクラーレンホンダMP4/4
を全70号、頑張って作ってみたけど、今回は1号で1マシン、しかも組み立てる必要は無く、大きさも1/43スケールと小さく手軽に楽しめそう。

 

(さらに…)

iPhone6 PlusからiPhone7 Plusに機種編したが、古いiPhoneをあえて下取りに出さず、iPod Touch化し子供のおもちゃとして使えるようにしてみた。

 

まずは、iPhone6の方をリセット。
設定>一般>リセット>すべてのコンテンツと設定を消去
設定>一般>リセット>すべてのコンテンツと設定を消去
(さらに…)

アルミバンパーハイブリッドケースに続き、新たなiPhone7 Plus用ケースを買ってみた。

今回はちょっとグラデーションの入った半透明のクリアケース。
グラデーションの入った半透明のiPhone7クリアケース
 
(さらに…)

【Spigen】 iPhone 7 Plus ケース, ウルトラ・ハイブリッド
iPhone7 Plus用アルミバンパーに続き、今度はケースタイプのモノを買ってみた。
(さらに…)

今回も結局、またiPhoneに機種変。
そんな訳で、新しいバンパーを購入してみました。

iPhone7よりもiPhone7 Plusの方がケースの種類が少なく、それほど選択の余地は無かったけど、
割とカッコいいバンパーがあったので購入。

iPhone7 Plus用アルミバンパー

(さらに…)

今年も富士登山へ。
今回は、富士山富士宮口(表口)五合目→山頂→お鉢巡り(剣が峰)→プリンスルート(御殿場口下山道→宝永火口→富士宮口)。

かれこれ10回目の富士登山。

 
富士登山ご来光

(さらに…)

# 最近、ホントにいろいろな仕事を掛け持ちしすぎてブログをサボっていましたが、少し暇ができたので久々のアップです。
 

ミーハーなもんでポケモンGO始めました。
元々、ウォーキングとか、位置情報関連のアプリとか興味があるんで、面白いなと思って。
既に、米ではブームが去りつつあるみたいだけど。

 
で、ピカチュウが居ると言われている新宿御苑に行ってみることにした。
なんか、裏技で最初からGetする方法もあるらしいけど。

でも実際に数日間、ポケモンGOを使ってみると、予想以上にバッテリー消費が激しいことが分かった。
GPS、カメラ起動に加え、頻繁な通信、画面表示しっぱなしと電池食いそうなネタばかりある。
ARモードをOFFにすればカメラ起動しなくなるので多少は良いけど。
あと、iPhone版だけか不明だけどバッテリーセーバーをONにすると固まるバグはあるし。

そんな訳で、大容量&携帯しやすいバッテリーを購入し直し。

予約商品【楽天ランキング1位獲得】送料無料 大容量 モバイルバッテリー 10000mAh 極薄 軽量 スマートフォン スマホ 充電器 薄型 携帯充電器 充電 ケーブル iPhone6s pllus プラス iPhoneSE iPhone6 iPhone5s SE 5 4 Xperia アンドロイド 持ち運び 【予約】 予約商品【楽天ランキング1位獲得】送料無料 大容量 モバイルバッテリー 10000mAh 極薄 軽量 スマートフォン スマホ 充電器 薄型 携帯充電器 充電 ケーブル iPhone6s pllus プラス iPhoneSE iPhone6 iPhone5s SE 5 4 Xperia アンドロイド 持ち運び 【予約】
OsadaSoft


 

そしていざ捕まえに行ってみる。
 

まずは日比谷公園でニャースをGET。
日比谷公園のニャース
(さらに…)

前にも位牌岳→袴腰岳→愛鷹山のルートは行ったことがあったけど、再び挑戦。
愛鷹山

(さらに…)

今回は、八ヶ岳の入り口というか、端っこの編笠山へ。
あまり写真撮らなかったけど、一応。

登山道
登山道。
もう、どこの山登ってもキツいという感想しかないけど、
体力がある人なら、自然に囲まれた景色を楽しみながら
登れそうな感じ。
(さらに…)

今回は、静岡県富士宮市の朝霧高原近くにある毛無山へ。

 

ふもとっぱら
ふもとっぱらから見た毛無山。
 
(さらに…)

[Spigen] UltraHybridTECH iPhone 6s/6 Plus Crystal Gunmetal

 

たまには気分転換ということで、iPhone6ケースまた買ってみました。
今度はバンパー風のクリスタルケースっぽいやつ。

 
(さらに…)

再び愛鷹山へ。
前回は、位牌岳→袴腰岳→愛鷹山のルートだったけど、
今回は、黒岳→越前岳→鋸岳→位牌岳のルート。
これで愛鷹山は3回目の登山。

愛鷹山登山道案内
愛鷹山登山道案内

 
(さらに…)

今回は、沼津アルプスに挑戦。

アルプスといっても、海辺近くで標高400m弱の山々。
東京タワーよりちょっと高い程度。
沼津アルプス

 
(さらに…)

激安AndroidタブレットBNT-71W

 

今までiPhoneやiPadなどiOSばかり使っていたけど、再びAndroidに挑戦してみることにした。

 

前にも、仕方なくドンキのAndroidタブレットを買ったけど、利用シーンが無くて結局手放してしまった。
ドン・キホーテの激安5,980円(税別)の7インチAndroidタブレットを買ってみた

 

でも、いよいよ仕事でもAndroidに触れる機会が増えてきて、さすがに知らないとマズい状況になってきた。
それでも、使い慣れたiPhoneを手放す訳にもいかず、また再び格安タブレットを購入してみることに。

 

完全に勉強用と割り切って、とりあえず動けばいいやレベル。

それでも、そんな古いAndroidは嫌。
丁度、Android 5.1でそこそこ安く、価格.comの評価も良いタブレットBLUEDOT BNT-71Wというのがあったのでソレを購入。
(さらに…)

テレビ番組を6チャンネル同時録画できるチューナーを買ってみた。

これワンセグで画質悪いんだけど、家族でチャンネル権争いで負けた時や
録り逃した番組なんかも簡単に見ることが出来る。
しかも、値段がメチャ安い。

ARecX6Tuner [ワンセグ地デジ6チャンネル全録チューナー] ARecX6Tuner [ワンセグ地デジ6チャンネル全録チューナー]
価格:¥4,999

 

そんな訳で思わず衝動買いしてしまった。
(さらに…)

東京モーターショーに行って、カメラ小僧してきました。(スマホで撮影だけど)

年々、エコカーとか増え面白味があまり無くなってきているような気もする。

そんななか、今回は日産が一番頑張っていたと思う。
特に自動運転技術が現実味を帯びてきて、改めて凄い技術と再認識させられた。
GoogleとかAppleも参戦するらししので、日本メーカーには頑張ってほしい。

あと、個人的にはやっぱホンダが良かったかな。

(さらに…)

最近のiPhoneやAndroidではきれいな写真が撮れるので、デジカメなんて必要ないと思っているんだけど、やっぱりズーム機能だけは物足りない。
デジタルズームだと画質が極端に劣化するし、やっぱそこら辺は光学式ズームのデジカメの方が良い。

 

だけど、写真編集やSNS投稿とか、GPS記録も残したいとか言うとスマホの方が良い。

 
そんな訳で、手軽に光学ズームを楽しめるクリップ式のスマホ用カメラレンズを二種類試しに買ってみた。
クリップ式のスマホ用カメラレンズ

 
 
(さらに…)