1

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 に移行するかについての提案をお待ちしております。

4

1 に答える 1

1

セットアップ インストーラーを移行して、Windows インストーラー XML (WiX) を使用することを強くお勧めします。
私はこれを何年も前にやりましたが、振り返ったことはありません。:)

Wix v3.5 は非常に安定しています。他の多くの機能の中でも、Visual Studio との統合に問題はありませんでした。

これはオープン ソースであり、コミュニティは非常に役立ちます。

heat.exe を使用して、ファイルから COM 情報を抽出できます。 http://wix.sourceforge.net/manual-wix3/heat.htm

たとえば、組み込みの Quiet Execution CustomAction http://wix.sourceforge.net/manual-wix3/qtexec.htmを使用して、ターゲット マシンで regsvr32.exe を呼び出すことができます。

そのリンクには、64 ビットの実行可能ファイルを実行する方法も記載されています。

[SystemFolder] プロパティを使用して、たとえば c:\windows\syswow64 にあるファイルを実行できます。
http://msdn.microsoft.com/en-us/library/aa372055.aspx

WiX の DTF テクノロジは、c# で msi カスタム アクションを記述するのに最適です。

HTH。

于 2011-06-22T07:23:12.370 に答える