WiX ではなく InstallShield を使用することを選択した日をすぐに後悔することになると思います。
私は WiX の経験が少しありましたが、使用するのが少し複雑に思えたので、実際のプロジェクトの時が来たら、Visual Studio 2010 用の新しい Flexera InstallShield LE を使用することにしました。最初はとても簡単に思えました。最初のインストール プロジェクトを問題なく作成してコンパイルしました。サードパーティのライブラリ (私の知る限り、VC 6 を使用してコンパイルされたもの) から COM 情報を抽出することさえできました。
しかし、同じソリューションにさらにいくつかの InstallShield インストール (ISL) プロジェクトを追加すると、奇妙な問題が発生しました。1 つの ISL プロジェクトの一般情報ページを編集して [すべて保存] ボタンをクリックすると、突然、情報が他の ISL プロジェクトの部分と混同され、一部のフィールドが UNITITIALIZED STRING として表示され、一部のフィールドが混同されます。また、他の ISL プロジェクトを開くと、そこでも情報がめちゃくちゃになっていることがわかります。唯一の解決策は、一般情報ページの編集中に他のすべての ISL プロジェクトをアンロードすることです。
問題その 2: クラッシュします。私のプロジェクトは C++/C# 混合アプリケーションです。アンマネージ C++ コードの編集中に、特定の操作 (コード ブロックのコメント アウト、切り取り、貼り付けなど) で Visual Studio がクラッシュすることがあります。Visual Studio 2010 SP1 もインストールしましたが、役に立ちませんでした。すべての ISL プロジェクトをアンロードすると、クラッシュは完全に停止しました。
とにかく、私はイライラしており、今は選択肢があります。
ISLにとどまり、インストールされてregsvr32を実行する独自の実行可能ファイルを作成します。それでも、Visual Studio のクラッシュと一般情報ページの問題に対処する必要があります。
Windows インストーラー XML に移動します。しかし、今どの段階にあるのかわかりませんが、同じ問題を抱えているのではないでしょうか? WiX は COM を登録できますか (syswow64 フォルダーの regsvr32 を使用して 64 ビット システムに 32 ビット dll を登録できますか)? Visual Studio 2010 で安定していますか?
特に Visual Studio 2010 の経験豊富な WiX ユーザーからの、ISL にとどまるか、WiX に移行するかについての提案をお待ちしております。