問題タブ [wixlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2176 参照

wix - WiX および共有され、バージョン管理されたコンポーネント

これは一般的なニーズであるに違いありませんが、ウェブ上でそれへの参照はほとんど見つかりません...

サーバーに 1 つ、Web ヘッドに 1 つ、開発者のマシンに 1 つ、合計 3 つのコンポーネント セットを持つ製品があります。3 つのセットはすべて 1 台のマシンにインストールでき、問題なく共存できます。

昨日のように、各コンポーネントは別の場所にインストールされ、正常に動作していましたが、一部のファイル、gac 化されたアセンブリ、およびレジストリ設定を共有する必要があるため、これは一時的なものでした。今、共有コンポーネントからマージ モジュールを作成しました。この新しいマージ モジュール シナリオは、理想的な条件下でのインストール中に正常に機能し、単一の msi のメジャー アップグレードをすべて把握しました。

問題は、msi のインストール中に、インストール中の msi 内のマージ モジュールのバージョンが、既にインストールされている (別の msi の) バージョンよりも低い場合です。新しいバージョンが古いバージョンで上書きされます。さらに、3 つの msis のいずれかのアンインストール ルーチンの際に、他のインストールされたコンポーネントによってまだ使用されているにもかかわらず、共有されたものが削除されます。

ほとんどの場合、この動作が発生する理由は理解できますが、共有コンポーネント用に別のインストーラーを用意せずにこれらのコンポーネントを共有できるようにインストーラーを構成する方法がわかりません。また、1 つの大きなインストーラーも必要ありません。これではうまくスケーリングできません。

私が望むのは、3 つのインストーラーに、ビルド時に利用可能なマージ モジュール内のコンポーネントの最新バージョンが含まれていることです。インストール時に、共有コンポーネントの新しいバージョンがインストールされている場合は、それらを上書きしないでください。アンインストール (およびアップグレード) 時に、追跡する必要がある参照カウントによって、共有アイテムを削除する必要があるかどうかが決まります。

何か足りない場合のために、マージ ファイルの重要な部分を以下に示します。マージ モジュールのバージョン番号 ("wxy" の y) はビルドごとに増分され、パッケージ ID は固定されたままで、各コンポーネントはShared="yes"(ただし、私もこれなしで試しました)。

さまざまなバージョン番号をレジストリに保存し始めましたが、レジストリのバージョン番号が存在しないかそれ以下の場合にのみ、マージ モジュール機能を条件付きでインストールできるのではないかと考えました。しかし、ドキュメンテーションにあるように、条件付き引数は wxyz を適切に評価できません。ドキュメントでは AppSearch が提案されていますが、AppSearch RegistrySearch は存在を確認することしかできず、バージョン番号の比較もできません。どうやら FileSearch は可能ですが、アセンブリ ファイルのバージョン番号はビルドごとにインクリメントされません。

また、MergeModules には多くの問題があることを読みましたが、おそらくこれらの問題が原因である可能性がありますが、wixlibs もこれらの問題に対する解決策を提供していないようです。

では、マージモジュールのバージョン管理を行う正しい方法は何ですか??? Amazon で「merge module versioning」という TOC エントリがある本を見つけましたが、その本は絶版になっています。:-P

0 投票する
1 に答える
662 参照

visual-studio - WiX ライブラリ プロジェクトで WiX 拡張機能を参照しています -- この wixlib を使用する他のプロジェクトでこの拡張機能を参照しなくても済むようにするにはどうすればよいですか?

WiX ライブラリ プロジェクトで WiX 拡張機能を参照しています。この WiX ライブラリ プロジェクト自体は、メインの WiX MSI プロジェクトによって参照されています。直接必要としないのに、メイン プロジェクトが WiX 拡張も参照しなければならないのはなぜですか?

私は自分の wixlib を可能な限り自己完結型に保ちたいので、それらを使用する他のプロジェクトがその内部の仕組みについて知る必要がありません。

WiX (3.0.x) の最新の安定版リリースを使用しています。

0 投票する
2 に答える
3862 参照

wix - 2 つの WiX プロジェクトで WiX フラグメントを共有するにはどうすればよいですか?

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

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

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

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

0 投票する
1 に答える
2615 参照

deployment - 現在のユーザーからのMyDocuments、Wixの組み込み変数?

にファイルをインストールする必要がありますC:\Documents and Settings\currentUser\SomeFolder。そのための組み込み関数/変数が見つかりません。

<DirectoryRef Id="TARGETDIR">誰かが私の問題の構造や解決策を教えてくれますか?

ありがとう。

0 投票する
1 に答える
408 参照

wix - How to pass additional WXS files to candle when using votive?

When building a WIXLIB from Visual Studio using Votive, how do you specify to candle where to find additional WXS files that are not part of the Visual Studio project (and are also not part of a referenced project)?

I do not want to add the WXS files to the project because they are updated by heat.exe during the build process, and therefore need to remain editable (i.e., they cannot be added to source control with the rest of the project).

0 投票する
1 に答える
1501 参照

wix - 「ソース」ファイルを wixlib に含めることは可能ですか?

「ソース」ファイルを wixlib に含めることは可能ですか?

私はいくつかの C++ ソリューションを持っており、それぞれに 1 つまたは複数のプロジェクトと、次のようなエントリを含むフラグメントを含む wixlib が含まれています。

「foo.exe」を収集して wixlib に含め、そのような複数の wixlib をリンクして MSI を生成する WiX プロジェクトを作成したいと考えています。

私が行った読書は、WiX3以降がこれをサポートしていることを示唆しているようであり、マージモジュールを使用するよりもこの手法が好まれています。

現在、バイナリ ファイルへのパスを記述する環境変数を使用しています。これは、リンク時にファイルを見つけるために light.exe によって使用されます。ただし、次の欠点があります。

  • wixlibs のコンパイル時と、wixlibs を MSI にリンクする時との間に変更するファイルのバージョン、および
  • wixlib のビルドに使用された環境に固有であること (例: wixlib のコンパイルとリンクが異なるマシンで行われた場合、必要なバイナリ ファイルを両方ともビルドする必要があります)
0 投票する
2 に答える
1351 参照

visual-studio-2010 - Visual Studio2010を搭載したWiX3.0-ユーザーインターフェイスライブラリがありませんか?

私は以前にWixを使用してインストーラーを構築しましたが、それは素晴らしいことです。

最近、マシンのイメージを再作成し、すべてのプロジェクトをそのバージョンに更新したため、VisualStudio2010のみをインストールしました。

WiX 3.0をダウンロードしてインストールすると、Visual Studio 2005または2008以降がインストールされていないため、Votiveがインストールされないというメッセージが表示されます。それは大丈夫です、とにかく私は奉納品を使用しません(そして、VS 2008がそれと何の関係があるのか​​よくわかりませんが、何でも...)

light.exeを使用してWixインストーラーをリンクしようとすると、UI wixlibが見つからないため、リンクエラーが発生します。ドライブ上のさまざまな場所(共通ファイル、Wixインストールディレクトリなど)を検索しても、wixlibファイルが見つかりません。

WiX UIライブラリの別のダウンロードを見つける必要があるという問題はありますか?もしそうなら、どこ?WixのWebサイトで有望なリンクが見つかりません。それとも、UIライブラリがVotiveのインストールに何らかの形でリンクされているという問題ですか?もしそうなら、どうすればVisual Studio 2010しかないシステムにそれらをインストールできますか?

0 投票する
0 に答える
2903 参照

wix - WiX 置換ダイアログ

MaintenanceTypeDlg などの 1 つの標準ダイアログを置き換えるにはどうすればよいですか?

UIExtension.dll への参照があり、プロジェクトに MaintenanceTypeDlg.wxs を追加すると、ダイアログの重複に関するエラーが発生します。

参照を削除して必要なすべての .wxs ファイルを追加せずに、単一の標準ダイアログを置き換えることはできますか?

0 投票する
1 に答える
4429 参照

wix - WixUiBannerBmp を wixlib に設定できますか?

現在、WixUIBannerBmp、WixUIDialogBmp、および WixUILicenseRtf WixVariables とそれに対応するバイナリ ファイルを wixlib に移動しようとしています。残念ながら、ビルド時にはこれらを無視してデフォルトを使用します。

マイ Library.wxs:

rtf ファイルと bmp ファイルは wixlib プロジェクトに含まれており、パスは Library.wxs ファイルからの相対パスです。

なぜこれが機能しないのか、誰にもアイデアがありますか?

ありがとう

0 投票する
1 に答える
8488 参照

wix - Wix 3.5 Wixlib でバナー画像を上書きしても、実際の MSI では機能しません

20 以上の他のインストーラーで使用しているバイナリ wixlib のバナー ビットマップ イメージをオーバーライドするために、いくつかの記事やその他の質問を使用しています。このライブラリは、独自のカスタム UI、いくつかのカスタム ダイアログ、共通リソース、バイナリ、カスタム アクションなどを提供します。

画像を上書きするためにwixlibで使用しているコードは次のとおりです。

しかし、実際の MSI プロジェクトで wixlib を参照すると、UI バナー イメージのオーバーライド以外はすべて機能します (カスタム ダイアログが起動し、プロセスが動作し、共通バイナリがインストールされるなど)。自分のバイナリ wixlib で UIExtension.wixlib のデフォルト イメージをオーバーライドするために、バイナリ wixlib プロジェクトで何か特別なことをする必要がありますか?

ここでこの質問を見ました: WixUiBannerBmp を wixlib に設定できますか? 、しかし、その質問への答えは質問に答えませんでした。それはアイコンに直接関連していて、この男がバイナリのwixlib(再配布可能)を使用していたかどうかはわかりません。wixlib に埋め込まれたプログラムの追加と削除のアイコンは、既に正常に動作しています。