21

asp.net 3.5 を使用して開発された非常に巨大な Web アプリケーションがあり、IIS 6 および 7 にアプリケーションを展開するために使用するインストーラー パッケージを準備する必要があります。Wix と Installsheild 2010 (pro) について多くの調査を行いました。決定を下す前にアドバイスが必要です。installsheild はライセンスに関してかなりの費用がかかることに気付きましたが、私にとっては十分な予算があるので問題にはなりません。インストーラーは次のプロセスを実行できる必要があります。

  • 公開された Web リソース (aspx など) をデプロイします。

  • 仮想ディレクトリを作成します。

  • SQL サーバーにデータベースを作成し、いくつかの初期化スクリプトを実行します。

  • XML ファイルと web.config ファイルを変更します。

  • 仮想ディレクトリ内のファイルへの書き込みを許可するパーミッションを設定します。

どちらのテクノロジでも上記のシナリオを実行できることがわかりましたが、個人的な経験とアドバイスを得たいと思います。

4

4 に答える 4

26

やりたいことを正確に実行する Wix インストーラーを作成したので、喜んでお勧めします。

私が見た InstallShield に対する Wix の利点:

  1. Wix は無料なので、チームの全員がインストールできるため、全員がインストーラーに貢献できます。ある開発者がプロ​​ジェクトにライブラリを追加すると、「セットアップ担当者」が自分の仕事をするのを待たずに、必要に応じてインストーラーを更新できます。
  2. Build Server に Wix をインストールしても問題がないため、継続的インテグレーションを使用する環境に適しています。MSBuild とうまく統合されます (Votive プロジェクトを参照してください)。
  3. Wix インストーラーはテキスト ファイルから作成されるため、バージョン管理が非常に簡単です。
  4. Wix には Deployment Tools Foundation (DTF) が含まれており、.Net コードを使用してカスタム アクションを非常に簡単に作成できます。
  5. Wix は金属に近いです。通常、Windows インストーラーの知識を Wix に直接適用できます。逆に、Wix を学ぶことで、Windows インストーラーについて多くのことを学ぶことができます。

このバランスをとるために、いくつかの注意事項があります。

  1. Wix の学習曲線は急勾配です。まだ行っていない場合は、WiX チュートリアルを確認してください。
  2. WiX は、InstallShield のような「ビジュアル」環境ではありません。通常は、すべてがテキストと xml です。そうは言っても、無料商用のエディターがあります。
  3. 特に IIS のセットアップに関連するもの: Wix 3.0 は IIS 6 メタベース API に対してのみ機能します。IIS 7 にインストールするには、ターゲット サーバーでメタベース互換機能を有効にする必要があります。IIS 7 の完全なサポートは、Wix 3.5 で予定されています。これのベータ版を試しましたが、今のところ問題なく動作しているようです。
于 2010-07-01T09:05:06.937 に答える
20

Wix と InstallShield での私の経験に基づいて、かなり基本的で簡単なインストーラーが必要でない限り、InstallShield を使用することをお勧めします。私がこれを言うのは、利用可能な情報が不足しているため、巨大な Wix の学習曲線がさらに難しくなっているからです。

Wix に関する本はありません。そのため、リソースはWix チュートリアルに限定されています。このチュートリアルは詳細で長いですが、それでも基本的なこと以外はほとんどカバーしていません。また、Google で見つけたブログ投稿もあります。確かに、特定のことを達成する方法を詳しく説明している優れたブログ記事はたくさんありますが、締め切りに間に合わなければ、Wix で特定のことを行う方法を何日も座って研究する余裕はないでしょう。個人的には、Wix を実行可能なソリューションにするには、この方法をやりすぎていることに気付きました (繰り返しますが、単純なインストーラーのみが必要な場合を除きます)。

最終的に、私の場合、InstallShield で開発された既存のインストーラーがあり、それを使用することでより迅速に生産性を高めることができました。InstallShield には独自のスクリプト言語もあり、かなり優れたドキュメントも用意されています。

私にとってもう 1 つの大きな利点は、InstallShield が複数のインスタンス (Wix でこれを行う方法を検索してみてください) とアップグレード/パッチ適用の苦痛を軽減することです。InstallShield を使用すると、これらの両方 (特に複数のインスタンス) を、Wix で達成するよりもわずかな時間で達成できました。

私のアドバイスは、時間の制約/締め切り/コミットメント、インストーラーの複雑さ、および製品の成熟度に基づいて選択することです. Wix では、InstallShield が提供するかなり迅速な方法について、多くの調査が必要です。これは、かなり新しい製品ではなく、成熟した製品を使用している場合、さらに苦痛になる可能性があります.

お役に立てれば。

于 2010-07-02T14:26:55.127 に答える
13

上記のサミュエルのポイントに対処するには....

  1. 民主化の問題に対処する IsWiX と呼ばれる CodePlex でプロジェクトを作成しました。これを WiX で使用してマージ モジュールを作成し、そのマージ モジュールを InstallShield で使用して、両方の長所を活用します。これにより、セットアップ担当者は InstallShield を使用でき、数十人の開発者は IsWiX/WiX を使用できます。XML は引き続き追加のメタデータでマークアップできるため、モジュールで記述できる内容に制限はありません。

  2. InstallShield には、MSBuild/TFS と統合し、自動化インターフェイスを提供するスタンドアロン ビルド エンジンがあります。ここでは WiX の利点はありません。

  3. InstallShield もテキスト ファイルです。これは見苦しい DTD 形式ですが、IsWiX は、頻繁に変更される部分をインストーラーのほとんど変更されない部分から抽象化することで、その問題を解決します。

  4. InstallShield で DTF を使用することを強くお勧めします。結局、タイプ 1 のエクスポートされた関数は、どの MSI ベースのツールでも同じです。

  5. InstallShield には、基礎となるテーブルを表示するダイレクト エディターがあります。これは実際には、XSD ベースの DSL を使用してメタルを出力する WiX よりもメタルに近いものです。全体として、WiX と InstallShield には非常に優れた点があり私はそれらを組み合わせて非常に複雑なインストーラーを作成しています。

PS- IsWiX は、ブランチ マージの問題を解決するためにハッシュとソートに多くの考慮を払いました。(数十のブランチで Base Clearcase を使用しているため、これは非常に重要でした。)

于 2010-07-01T20:25:01.217 に答える
8

サミュエルの答えに+1。急な学習曲線については... 基礎となるテクノロジー (Windows インストーラー) の仕組みを理解していない場合、InstallShield または選択した WiX のいずれかのインストールのサポートに問題が発生します。しかし、WiX では、WiX の抽象化を正しく使用するために Windows インストーラーを学習することをお勧めします。

私は個人的に InstallShield を使用してセットアップ プロジェクト (巨大な Web アプリケーション) を開始しましたが、最近 WiX に移行して満足しています。私の選択の要点:

  • 無料です
  • それはXMLです(これ以上の苦痛な差分とマージはありません)
  • NAntに優しい
  • それはあなたが指示したことを正確に実行します(それ以上でもそれ以下でもありません)

この情報がお役に立てば幸いです。

于 2010-07-01T11:17:04.087 に答える