CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

ソフト開発

インストーラ作成ツール調査(VisualStudio Installerと簡単インストーラ)

投稿日:

まずは20年ほど前に書いた記事「簡単インストーラ」を読み返してみた。当時はInstallShieldをよく知らんかったが、今はよくわかっているほうで、さらにはInstallShieldに慣れきってしまっている。おいらが会社で使っているのはInstallShield 2012。12年も前にリリースしたバージョンをひたすら使い続けている。InstallScriptという独自言語が曲者である反面、こいつにガッツリと頼り切った処理をしているので、ここから抜け出せないという状況。InstallShieldの最新バージョンを会社に買わせようと思ったのが3年ほど前で、その激烈な高価っぷりに笑うしかなくて断念した。2005年時点で22万円の買いきりソフトで、今思うと安いもんじゃんと思える。3年くらい前に代理店から見積取ったら、3年間のサブス利用で120万円だった。年に40万円も払わなきゃいかんとは。。ということで、おいらの目が黒いうちはInstallShield2012を使い続けることが決定した。問題はOSの期限切れ。InstallShieldをインストールしてあるPCがWindows 10で、そのサポートが2025年10月まで。Windows 10を11にアップデートすればまだ延命できそう。そのマシンで試しにWindows 11へのアップデートが可能かどうかをチェックしたら大丈夫だった。最大の難関であるTPM2.0に対応していたのはラッキー。ネックは物理マシンということで、すでに6年くらい使っているPCだからあと4年もすれば壊れてしまう。P2Vで仮想化して、vhdxをバックアップしておくなって対策をしておくべきかなと。

前置きが長くなってしまった。本題はインストーラ作成ツール調査。最近、Windowsフォームアプリを作った。.NET Framework利用だから作ったexeをそのまま配布すればいいかくらいに思っていたが、NuGetでCSVHelperを入手して組み込んだから他にいくつかのDLLが必要となってフォルダ単位で配布する必要が出て、そのフォルダはどこに置けばいいのかを指導するのもメンドウだし、ショートカットをデスクトップに作れたらいいよなとか、やっぱインストーラを作ったほうがよいとなり、これまで使ったことのないインストーラ作成ツールを使ってみた。
Microsoft Visual Studio Intaller Projects 2022
マイクロソフト製のインストーラ作成ツールは、過去に現れては消えてを繰り返している。VS2012まで存在していたのが2013で一度なくなって、2017あたりで復活したみたい。現行VSの2022でも使えるってことがわかり、またネット上にその使い方を記した記事があったので、必要最低限の機能で使ってみた次第。
Visual Studio 2022でインストーラ作成 by OsadaSoft

VisualStudioの中から拡張機能の管理でインストールできるというのは手軽だし、C#のフォームアプリのプロジェクトにインストーラプロジェクトを紐づけることもできるから管理が楽。インストーラを作る際のGUIは日本語化されていないのが残念ポイント。作ったインストーラが日本語表示されるのは必要最低条件でクリアしていた。一つハマったのが、デスクトップに作ったショートカットが特殊で、そこにファイルをドラッグ&ドロップしても受け付けてくれなかったこと。特殊というのは、ショートカットのプロパティを見るとリンク先にexeのフルパスが存在しなくて、アプリ名がグレーアウトして表示されている状態のこと。正式名称、アドバタイズショートカット。こういうショートカットは見たことはあって、3次元CADのSOLIDWORKSがそうで、何のこっちゃとナゾに感じていたところ、その原因や詳細を調べようがなくて放置していた。Windowsインストーラで導入された新しいショートカットファイルの様式で、アプリケーションをインストールしないでユーザーに配布する(オンデマンドインストール=ユーザーが初めてアプリケーションを使おうとした時点で必要なコンポーネントのインストールを行う)ことを可能にしたものだって。ふむふむ、でも別にそんな機能いらんよ。アドバタイズショートカットじゃなくて普通のショートカットは作れんのかい?って調べた結果、このツールではできないけれども、外部ツールでできることが判明。
Windows インストーラ講座 - アドバタイズショートカットをやめる方法

Orcaというツールはけっこうインストールするのがめんどう。昔々、VCランタイムのIDを調べるために使ったことあったな。アイコンがシャチのギザギザの絵柄で時代感を感じさせる。オルカはシャチのことでイルカとは違う。イルカとシャチとクジラは全部同じようなもんらしいけどね。WindowsでVisualStudioを使って開発している人なら、以下の場所にインストールがあるからダブルクリックするだけでインストール可能。
C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86\Orca-x86_en-us.msi
※「10.0.20348.0」のところは細かいバージョンなので、似たようなフォルダがあればそこも探すべし。
Visual Studio Intaller Projects 2022でビルドしてできたmsiファイルを、Orcaで開いて、テーブル「Property」を開き、コマンド「ADD ROW」でDISABLEADVTSHORTCUTS=1を追加してmsiを保存すれば完了。

簡単インストーラは開発停止していた。最終更新が2015年8月だから7年くらい止まっているということ。作者の高年齢化で、フリーソフトとして維持継続できなくなってしまったのだろう。時代的にはLZHの脆弱性問題が出たあたりなので、いいきっかけだと思ったのかもしれない。30代や40代であれば、趣味のプログラミングへの情熱があって、本業とは別に大量の時間を費やしてアプリ開発できただろうが、50代にもなれば情熱も体力もなくなってくるというもの。これはおいらの場合だけどね。。後世の人に技術を残すためにはソース公開でもして、あとはやる気のやる人よろしくね、ってことにするのがいいのかもな。

-ソフト開発

執筆者:


  1. junkbulk より:

    はじめまして。自分はインストーラをInnoSetupで作っています。
    https://jrsoftware.org/isinfo.php
    情報も多いし、スクリプトも書きやすいと思います。

    • cad より:

      InnoSetupよさげですね。codeがInstallScriptと非常によく似てます。マルっと移植できそうな気もしますよ。こんどイジってみます。

comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

コンピュータの日付

痛い目にあった記録。 無料試用期間30日間、そんなソフトを開発している。 動作確認するために、コンピュータの日付を変更する。 日付を数日後に変更して「残り27日です」とちゃんと出るか。 もっと先の日付 …

PDFiumViewerのソースコード

GitHubで公開されているPDFiumViewerのソースコードをダウンロードして、PDFiumそのものの使い勝手を調査いていたが、なかなか困難な取り組みであり、頓挫しているところ。 PDFiumV …

Hyper-Vのvhdxを圧縮するのはPowerShellでやるんだけど、その自動化手法がおもしろいじゃん(3)

vhdを手軽に圧縮できるPowerShellプログラムの決定版。 まずは、前回考えたことを振り返る。。 ps1内のvhdのファイルパスを自分で書き変えなきゃいけないのが難点だから、ps1と同じ場所にあ …

PDFiumでPDFを描画してみたけど、こんなに簡単にできちゃっていいのかよ!

PDFiumで画像化とテキスト抽出が容易にできることは前回まででわかっていたので、今回は描画に取り組んでみた。

PDFアレコレで画面の拡大・縮小・移動ができるようにした

PDFアレコレをバージョンアップ。約4か月ぶり。 Ver3.05 2021/6/20 ・PDFの描画位置を左右上下にセンタリングするようにした(以前は左上)。 ・Ctrl+マウスホイール上下操作によっ …