Help us understand the problem. What is going on with this article?

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

はじめに

インストーラーパッケージを作成したいけれど、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" を同一に保っておくと、インストールウィザードはインストール前に古いバージョンをアンインストールします。

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 で保存します。

参考にした情報

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away