4

ファイル SomeDialog.wxs に、ユーザーに何らかの情報を求める WiX フラグメントがあります。ダイアログの順序を制御する InstallerUI.wxs ファイルの別のフラグメントで参照されます。もちろん、Product.wxs がメイン ファイルです。よく働く。

現在、別のアプリケーションの .MSI 用に 2 つ目の Visual Studio 2008 Wix 3.0 プロジェクトがあり、ユーザーに同じ情報を求める必要があります。要求された情報を変更すると、両方の .MSI が新しい動作になるように、ファイルを共有する最善の方法がわからないようです。

正直なところ、マージ モジュール、.wsi (インクルード)、または .wixlib が適切なソリューションであるかどうかはわかりません。誰かがこれを行っている簡単な例を見つけたいと思っていましたが、これまでのところ失敗しています。

編集: Rob Mensching のwixlibブログ エントリに 基づいて、wixlib が答えかもしれませんが、これを行う方法の例をまだ探しています。

4

2 に答える 2

6

.wixlib オプションには非常に満足しています。.wixlib とは何かを理解すれば、ほんの数分で完了できます。
私は次のことを行いました: VS2008 では、SQLDialog という名前の「WiX ライブラリ プロジェクト」タイプの [追加] -> [新しいプロジェクト] を選択しました。Library .wxs ファイルは空の<Fragment></Fragment>要素で作成されます。既存のダイアログ (メインの「WiX プロジェクト」) から UI 要素を Fragment 要素にコピーしました。

<Fragment>
  <UI>
    <Dialog Id="SQLServerPromptingDlg" ... Title="SQL Server Information" ...>
      <Control Id="Next" Type="PushButton" ... Text="!(loc.WixUINext)" />
      ...
    </Dialog>
  </UI>
</Fragment>

VS2008 のリリース ビルド構成に wixlib プロジェクトを追加しました。メイン WiX プロジェクトから SQLDialog.wxs ファイルを削除し、代わりに SQLDialog wixlib プロジェクトを参照しました。
ソリューションを再コンパイルすると、メインの WiX プロジェクトは以前とまったく同じように機能しました!! 甘い!

次に、他の WiX プロジェクトから SQLDialog wixlib プロジェクトを参照し、そこから利用しました。うまくいきました!ビルド サーバーは、共有 .wixlib プロジェクトがコンパイル中のソリューションの一部であるため、満足しています。したがって、私たちの目的にとって、これは「共有」ディレクトリよりも優れていると思います。無罪ボブ。あなたの考えに感謝します。

于 2010-05-11T16:41:15.427 に答える
1

ファイルが 1 つだけの場合、ビルドに別の .wixproj が必要になるため、.wixlib はやり過ぎかもしれません。そのような場合に私が行うことは、.wxs を「共有」ディレクトリに配置し、「既存のアイテムを追加」コマンドの「リンクを追加」ドロップダウンを使用して複数のプロジェクトに追加することです。

于 2010-05-05T20:43:12.340 に答える