LoginSignup
93

More than 3 years have passed since last update.

なつかしの Visual Studio Installer(の後継)を現役のVisual Studioで使用する

Last updated at Posted at 2017-11-27

はじめに

インストーラーパッケージを作成したいけれど、Install Shield は複雑、かつ無料版は制限だらけ。Wixはよくわからない...、Inno setup などもあるけれど、MS謹製ツールが使いたい。
"Visual Studio Installer"というツールが MSサイトより配布されていましたが、残念ながら Visual Studio 2012 からサポートされなくなってしまいました。一方で Visual Studio 2013 以降向けに、似たインストーラ作成機能が配布されています。

入手・利用方法

入手方法

Microsoft の Visual Studio Market Place から "Microsoft Visual Studio 20?? Installer Projects" の名前で入手できます。無料です。
リンク:2013 / 2015 / 2017 & 2019

利用方法

  1. 使用しているVisual Studio のバージョンに合った vsix ファイルをダウンロードし、これをダブルクリックするとインストーラーが実行され、"Visual Studio Installer" が Visual Studio の拡張機能としてインストールされます。
  2. Visual Studio を起動すると、「その他のプロジェクトの種類」のカテゴリ内に「Visual Studio Installer」が見つかります(※VS2019は後述)。この中から目的のプロジェクトテンプレートを指定して、インストーラープロジェクト(英名 Deployment Project)を作成します。 p1.png
  3. ソリューションエクスプローラーのプロジェクト項目上で右クリックすると "View" と書かれたメニューがあり、ここからUIを追加したり、レジストリエントリを編集したりできます。

p19.png

p27.png

p22.png

p25.png

Visual Studio 2019 の場合

※Visual Studio 2019では、プロジェクト作成画面の検索窓に setup と入力すると表示されます。
image.png

Tips

インストーラプロジェクトに関するプロパティウインドウの表示方法は?

ソリューションエクスプローラーで、対象のインストーラプロジェクトの項目を選択してからプロパティウインドウを表示させます(他の操作方法もあれば、教えていただけますと嬉しいです!)

上書きインストールしようとするとエラーになる

インストーラーを起動して更新しようとすると、こんなエラーメッセージが表示されてしまう場合があります。
「別のバージョンの製品が既にインストールされています。このバージョンのインストールを続行できません。既にインストールされているバージョンの製品を構成、または削除するには、コントロール パネルの [プログラムの追加と削除] アイコンを使用します。」
image.png

インストーラプロジェクトのプロパティ "RemovePreviousVersion" を True に設定しておきます。
新バージョン生成ごとに "Version" の値をアップさせ、"ProductCode" を変えるか否か質問されるので、「はい」(変える)を選択します。"UpgradeCode" を同一に保っておくと、インストールウィザードはインストール前に古いバージョンをアンインストールします。

image.png

SendTo に作成したショートカットアイコンが「送る」に表示されない

このツールでは、特殊フォルダ宛にショートカットアイコンなどを作る機能があり、エクスプローラーの「送る」に相当するフォルダ(いわゆるSendToフォルダ)も対象となっています。
p2.png

ただ、このツールでショートカットアイコンを作成すると「アドバタイズショートカット(advertised shortcut)」として作成されます。「アドバタイズショートカット」として作成されたショートカットは「送る」から表示されません。
表示されるようにするには、ショートカットアイコンを「アドバタイズショートカット」として作成する機能を無効にさせるために、次のいずれかの方法を用います。

1 インストーラー実行時に引数を指定する
(引数を指定して呼び出すバッチファイルを配布すればよいでしょう)

msiexec /i DISABLEADVTSHORTCUTS=1

2 "Orca"ツールで、msi ファイルを加工する。
MS謹製の"Orca"ツールで、インストーラーファイル(.msi) の情報を書き換えることができます。

Orca入手手順の例

「"Orca.exe"の入手方法」で検索すると、いくつか情報があります。以下は、Windows Server 2003 Platform SDK から入手する方法です。

  1. Microsoft社のダウンロードサイトの "Windows® Server 2003 SP1 Platform SDK ISO Install" から、"Platform SDK"のISOイメージをダウンロードします。
  2. ダウンロードしたイメージファイルをマウントし、Setupフォルダ内にある "PSDK-SDK_MSI_BIN-common.0.cab" をデスクトップ上などに展開します(cabファイルは、圧縮ファイルですので...)
    p5.png

  3. "Orca_Msi.FD66E721_5AA0_41BC_AA26_1EC8F7FA1175"と名付けられたファイルがあるので、これに拡張子 .msi をつけ、実行させると、Orca のインストールがはじまります。
    p6.png

Orcaによる加工手順

  1. Visual Studio Installerで作成されたインストーラーを、エクスプローラーから右クリックすると "Edit with Orca" のメニューがあるので、これを選択して開きます(Orca.exe を直接起動して、インストーラーを指定して開いても同じ)
  2. 左の "Tables" のなかに "Properties" 項目があるので、これをダブルクリックします。
  3. 右側の表を右クリックし、"Add Row"を選択します。 p3.png
  4. Propertyに"DISABLEADVTSHORTCUTS"、Valueに"1"を指定してOKをクリックします。
    p7.png

  5. File->Save で保存します。

プロパティ設定

セットアッププロジェクトのプロパティ(プロパティグリッド)にセットした値のうち、インストールウィザードでは ProductName と Manufacturer が活かされるようです。(ProductName が、ウィザードやアンインストール情報のタイトルにも、インストール先フォルダ名にも使いまわされているところは微妙...)
image.png

image.png

image.png

image.png

image.png

image.png

ユーザーインターフェースのプロパティから若干加工はできるようですが...
image.png

参考にした情報

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
93