問題タブ [wix3]
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.
combobox - WiXのインストール時にComboBoxにデータを入力するにはどうすればよいですか?
編集:Robの回答のおかげで、以下のコードが機能するように更新しました。
これを行う方法を示すページをいくつか見つけました(http://www.cmcrossroads.com/content/view/13160/120/、http://www.mail-archive.com/wix-users@ lists.sourceforge.net/msg05103.html)、WAIのソースコード(http://wai.codeplex.com/)を調べましたが、何を試してもインストーラーで機能しないようです。 。誰かが私が間違っていることを見つけることができれば、私は非常に感謝するでしょう。ダイアログのWiXフラグメントは次のようになります。
私のカスタムアクションコードは次のとおりです。
以前は2つの問題がありました。
1)カスタムアクションの実行中に上記のコードが失敗し、「実行中に関数が失敗しました。データベース:テーブルの更新に失敗しました。」-これは、インデックスの問題により、コードがint列に文字列を書き込もうとしたことが原因でした。
2)行を変更した場合
に
次にトレースを見ると、アクションは成功したように見えますが、インストーラーを実行すると、コンボボックスには選択できるエントリがありません。
コンボボックスをハードコードされた値を持つように変更すると、lWebsiteNameと同等のものをハードコードした場合でも、すべてが正常に機能します。
vb6 - WIX 3 : Visual Basic 6 COM Dll に HEAT を使用する
私は WIX 3 を使用しています。heat を使用して VB6 dll の wxs ファイルを作成しました。msi はエラーなしで作成され、インストールも成功します。
すべて問題ないようで、VB クライアントからコンポーネントを正常に呼び出すことができます。
ただし、ASP ページからコンポーネントを呼び出すと、0x800401f3 が返されます。
インストーラーの代わりに自己登録 (regsvr32) を使用すると、どちらも正常に動作します。
自己登録(regsvr32)とインストーラーの違いを理解するためにレジストリの違いを調べたところ、次のように表示されました
- HKCR のすべてのエントリが一致します - ここでは問題ありません
- regsvr32 は HKLM にエントリを追加しますが、インストーラーは HKLM に触れません。
これが問題なのか、それとも完全に間違った方向に進んでいるのか疑問に思っています。
MSDN ( http://msdn.microsoft.com/en-us/library/ms694355(VS.85).aspx ) は、HKLM でレジストリ エントリが必要であると述べています。
以下は、heat によって作成されたファイルです。
更新: ファイルに「SelfReg」オプションを使用すると、ASP クライアントも機能します。これは使用しないことを他の投稿から読みました。誰かが私に何をすべきか教えてもらえますか?
wix - WixでコンポーネントのGUIDを変更しますか?
WIXでコンポーネントGUIDを変更する必要があるのはいつですか? MicrosoftSDKの情報は紛らわしいです。
Glytzhkof編集:明確にするために、質問は、MSIコンポーネントのコンポーネントGUIDをいつ変更する必要があるかを扱います。コンポーネントは、宛先パスの変更、同じコンポーネントとの間のファイルの追加または削除、レジストリデータの追加などの側面で変更される可能性があります。これにより、いわゆるコンポーネント参照に関して問題が発生します。 MSIでコンポーネントを作成します。
windows-xp - 使用中の共有アセンブリをアンインストールして、WinSxs を悪い状態のままにする
WinXP で Wix3 を使用して共有の win32 SxS アセンブリをアンインストールできません。私の wix ファイルは、http://n2.nabble.com/Tutorial-How-to-install-files-into-WinSxS-td841475.htmlで説明されているものとほとんど同じです。
問題は、アセンブリのモジュールが使用されている場合、アンインストーラーは成功エラーコードで完了しますが、アセンブリは壊れた状態のままになります。マニフェストとセキュリティ カタログは削除されていますが、アセンブリ ディレクトリには dll が含まれています。 . DLL は再起動後も存続するため、削除対象としてマークされることはありません。MSI ログ ファイルに明らかなエラーはありません。
パッケージを再インストールしようとすると、アセンブリのインストールがスキップされます。コンポーネントが登録されていないため、インストーラーにアンインストールを再試行させることができません。以降のインストールでは、msi ログに次のように表示されます。
MSI (c) (98:44) [11:46:56:263]: アセンブリ コンポーネントのインストールをスキップしています: {26A273E7-7F9A-4F77-9FA8-5E413A155BEC} アセンブリが既に存在するため
アセンブリのディレクトリを手動で削除する以外に、SxS を良好な状態に戻す方法が見つかりません。この時点で、アセンブリのディレクトリは XP システムの復元によって保護されなくなりました。
私の実際のインストーラーははるかに複雑ですが、単一のコンポーネントを含む単一の機能を持つ非常に基本的なインストーラーでこれを再現できました。そのコンポーネントには、dll、マニフェスト、およびセキュリティ カタログが含まれています。dlls <File> 要素には、KeyPath、Assembly、および AssemblyManifest 属性が設定されています。インストールしたら、MSVS で DLL を開いて、アセンブリをロードするプロセスをシミュレートできます。
この状況を検出して防止するために、アンインストール時に呼び出す必要がある追加のアクションはありますか? または、WinSXS に DLL が既に存在する場合でも、インストール操作を強制的に実行する方法はありますか?
多少関連していますが、アセンブリが変更されていない場合に、アセンブリをインストールしたパッケージをアップグレードしようとすると、問題が発生します。インストーラーは、アセンブリを再インストールする必要はないと判断しますが (アセンブリは変更されていないため)、SxsUninstallCA が実行されると、アセンブリが削除されます。インストーラーの観点からは、コンポーネントはまだインストールされていますが、ファイルは失われています。
installation - パッチ番号の変更のためにwix製品IDを自動生成する必要がありますか?
私は製品のセットアップを構築するためにwixを使用しています。製品には、フォーマットのバージョンがあります
例:
各ビルドで、最後のパッチ番号は1314、1315などのように変化し続けます。
パッチ番号の変更の間だけ自動生成された製品要素のid属性を保持する必要があるのか、それとも一定のままにする必要があるのかを知りたいですか?
wix - WIX のプロパティに基づいてファイル ソースを動的に設定するにはどうすればよいですか?
4 つのリージョン (dev、test、qa、prod) があり、すべて環境固有の構成ファイルが必要です。msiexec コマンド ラインからプロパティの割り当てを受け入れ、構成ファイルのファイル ソースを動的に設定する WIX インストールを開発しようとしています。私はほぼすべてを試し、すべてのページを読みましたが、うまくいかないようです。これは些細な問題のようです。
wix - WixのコンポーネントGUID
私の2つのアプリケーション、クライアント、サーバーで共有されている.netdllがあります。
ユーザーがインストールを選択し、クライアントのみ、またはクライアントとサーバーの両方をインストールできるため、ファイルがどこにインストールされるかわかりません。
サーバーとクライアントの両方のwixにコンポーネントがあり、共有アセンブリのみが含まれています。
両方に同じGUIDを設定する必要がありますか?サーバーとクライアントの両方を同じパスにインストールすると、インストールに何らかの影響がありますか?サーバーとクライアントは異なるアセンブリバージョンが必要な場合がありますが、ファイル名は同じです。
wix - Wix: 複数の wxs ファイルを含むモジュールをマージする
そのため、複数の wxs ファイルがあるマージ モジュールを作成しようとしています。プロジェクトのビルドが成功したので、すべて問題ないと思っていました。後で、セカンダリ wxs ファイルの 1 つのソース属性で使用されているパスが完全に間違っていることに気付きましたが、コンパイラは次のエラーを表示しませんでした。
システムはファイル '..\..\release_area\WrongPath\Component2.dll' を見つけることができません。
セカンダリ wxs ファイルに、メイン wxs ファイルのAssemblyFolderフォルダーを参照するDirectoryRef要素を追加して、2 つのファイル間の参照を作成しました。
メイン wxs ファイル:
セカンダリ wxs ファイル:
明確にするために: テストするため<Component Id="Component2.dll">
に、メイン wxs に直接コピーしたところ、エラーが発生しました:システムはファイル '..\..\release_area\WrongPath\Component2.dll' を見つけることができません。
私の推測では、セカンダリ wxs ファイルとメイン wxs ファイルの間の参照が完全に間違っているため、コンパイラはファイル パスを検証しませんが、何が問題なのかわかりません。
wix - Web サイトをインストールするための Wix UI
ASP.Net Web サイトをインストールするための WiX UI シーケンスを持っている人はいますか? Visual Studio のインストール プロジェクトと同様に、仮想ディレクトリとアプリ名を要求するものはありますか?