13

WPF を使用して Visual Studio アプリケーションを開発していますが、今こそインストーラーを選択する必要があるときです。

プロジェクトで GAC とレジストリに書き込みできるようにする必要がありますが、Visual Studio インストーラーと Wix のどちらを使用する必要があるかわかりません...両方の違いを正確に示す Google 情報が見つかりません。彼ら。

Wix の方が完全であることがわかりましたが、実際の違いを特定する記事は見つかりません...

より具体的な情報を見つけたり、両方から選択したりするのを手伝ってくれる人はいますか?

編集:申し訳ありませんが、指定します:

Visual Studio 2010 Professional を使用しています。

4

3 に答える 3

14

最終製品は同じ、Windows インストーラー msi です。

そこにたどり着く方法が違うだけです。古い vdproj では、私が覚えている限り、コピーするファイルとレジストリ キーを設定する以外にはほとんど何もありませんでした。それ以外の場合は、C++ または VBS でカスタム アクションを作成する必要があります。これは、.net 開発者にとって特に簡単な作業ではありません。

ただし、Wix の出現により、豊富なインストール エクスペリエンスを作成できる組み込みのカスタム アクションがさらに多くなりました。独自のカスタム アクションを作成する必要がある場合は、.net を使用できます。また、WPF でフロントエンドを作成できるだけでなく、msi と共に依存関係をインストールできるブートストラップを作成する方がはるかに簡単です。

@nvoigt が言ったように、古い vdproj タイプは VS2012 ではサポートされておらず、厄介なセットアップを行わずにビルド サーバーでビルドすることもできません (VS をインストールする必要があります)。

全体として、何を使用するかという問題はありません.Wixは前進する方法です.

于 2013-03-07T11:25:14.163 に答える
4

Caveman_Dick さんが書きました:

「それ以外の場合は、カスタム アクションを作成する必要があります」。

そして、それは一言で言えば違いです。Visual Studio 展開プロジェクトは、基盤となる Windows インストーラーからユーザーを大幅に抽象化し、その機能の大部分を封印します。これは、宣言型のトランザクション プログラミング モデルであるはずの Windows インストーラの設計そのものに反します。

例として、Windows サービスのインストールを考えてみましょう。Windows インストーラーには ServiceInstall テーブルがあります。VDPROJ はこれを公開できないため、壊れやすいカスタム アクションを作成することはできず、インストーラーは洗練されておらず、堅牢性も低くなります。

一方、WiX は非常に薄い抽象化です。基になる Windows インストーラー テーブル データを表す XML XSD 要素と属性がすべてです。ビルド プロセスは、XML を SQL テーブルに変換するだけです。MSIにできるなら、WiXにも(99%)できます。

VDPROJ は恐ろしい間違いであり、Microsoft は最終的にそれを認めて殺してしまいました。現在、WiX には UI デザイナーがいないため (私は CodePlex で作成しました)、InstallShield Limited Edition (無料) も検討することをお勧めします。

ISLE と WiX を組み合わせて使用​​することで、両方の長所を活かすことができます。

于 2013-03-07T14:06:19.983 に答える
0

セットアップ プロジェクトが現在のバージョンの Visual Studio に同梱されなくなったため、Wix を使用することをお勧めします。そうしないと、Visual Studio の現在のバージョンに切り替えたときに、再度記述する必要があります。

于 2013-03-07T10:33:26.260 に答える