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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

PDFアレコレにページ挿入機能を追加

PDFアレコレのページ挿入機能とちょっとした不具合修正。 Ver2.08 2020/5/6 ・ページ挿入に対応した。指定したページの前に、指定したPDFファイルまたは空白ページを挿入できる。指定ページ …

no image

CArrayで配列の配列(ネスト)を実現する方法

CArrayで配列の配列(ネスト)を実現したいことがよくある。 シンプルにこんなことやると、ビルドエラーになる。 typedef struct { // 構造体 CStringArray m_ary; …

PDFへの捺印をpdfでするだけでなくpng画像でもできるようにしたPDFアレコレを公開

昨日に引き続き今日もPDFアレコレをバージョンアップ。変更点は以下の通り。 Ver2.03 2020/3/22 ・捺印データとしてpng画像に対応した。 ・捺印時にマウスカーソルにプレビューデータを表 …

no image

プログラムっておもしろいなぁとつくづく思うなり

ここんところぜんぜんプログラムを書いてなくて仕事がつまんなくなってきたところに、トラブル対応があってプログラムをじっくりと書いてみた。いやはやおもしろい。余計な仕事が飛び込んでこない環境で、スピッツ聞 …

no image

CEditでドラッグ&ドロップ

プログラミングから離れてしばらく経ってしまった。 プロジェクト管理をやっていると、プログラミングをやることができなくなる。 対人間の仕事の合間にプログラムをやることは、おいらには無理だった。 プログラ …