問題タブ [wix-extension]
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.
user-interface - WiX 3インストーラーにUIを追加するにはどうすればよいですか?
試しましたが<UIRef Id="WixUI_Minimal" />
、「シンボルWixUI:WixUIMinimalへの未解決の参照」が表示されます。私は何が間違っているのですか?
wix - WiXコンパイラ拡張チュートリアル?
インストールされているWCFサービスのURLACLとSSLバインディングを設定できるように、HTTP API(httpapi.dll)との対話を処理するWiX拡張機能を作成する必要があります。
私が理解しているように、XML文法(XSD )を定義できるようにWiXコンパイラ拡張機能を作成してから、コンパイラを実装してXMLをMSIで定義されたテーブルのレコードに変換する必要があります。
私はそのほとんどを稼働させていますが、XsdGenカスタムツールを使用するようにプロジェクトを設定する方法に困惑しており、その後、さらに多くの問題が潜んでいると確信しています。
Wixコンパイラ拡張機能を作成する方法を示す完全なチュートリアルはありますか?
permissions - WIX: フォルダーへのアクセス許可の付与
関連するトピックをすべて読みましたが、問題に対する完全な回答が見つかりませんでした。
Program Files の下のフォルダの SYSTEM に完全な権限を付与し、Users グループに読み取りと実行の権限を付与したいと考えています。それ以上でもそれ以下でもありません。
WIX を使用してフォルダにアクセス許可を与える方法は 3 つありますが、どれも私にとってはあまり良いものではありません。その理由を説明します。
1)通常の許可要素:
問題:「Users」キーワードを認識しないため、外国の OS では失敗します。SIDでも試しました。それに加えて、Test ディレクトリ内の各ファイルの下に Permission 要素を配置する必要があります (ただし、これが唯一のケースである場合は、なんとかできたはずです)。
2) WixUtilsExtension PermissionEx 要素:
問題:このフォルダーは、Program Files フォルダーの既定のアクセス許可も保持します。私はそれを許すことはできません。
3) Sddl を使用した PermissionEx:
問題:この要素は、MSI 5.0 をインストールする場合にのみ使用できます。インストーラー 3.01 を使用しています。
カスタムアクションを含むソリューションを含め、喜んで解決策を提供します...
iis - Wix IIS拡張機能を使用してIP制限を設定できますか?
Wixインストーラーを使用してIISサイトのIPアドレス制限を設定することは可能ですか?IIS拡張機能のドキュメントに記載されていません。1つの特定のIPアドレスでのみサイトを利用できるようにしたい。
ありがとう!
visual-studio - WiX ライブラリ プロジェクトで WiX 拡張機能を参照しています -- この wixlib を使用する他のプロジェクトでこの拡張機能を参照しなくても済むようにするにはどうすればよいですか?
WiX ライブラリ プロジェクトで WiX 拡張機能を参照しています。この WiX ライブラリ プロジェクト自体は、メインの WiX MSI プロジェクトによって参照されています。直接必要としないのに、メイン プロジェクトが WiX 拡張も参照しなければならないのはなぜですか?
私は自分の wixlib を可能な限り自己完結型に保ちたいので、それらを使用する他のプロジェクトがその内部の仕組みについて知る必要がありません。
WiX (3.0.x) の最新の安定版リリースを使用しています。
installation - Windows ファイアウォール以外のファイアウォール製品 (Norman、Norton など) のファイアウォール例外を追加する
WiX FirewallExceptionを使用して、インストーラーの一部として 2 つのファイアウォール例外を追加した WiX インストーラー プロジェクトがあります。クライアント マシンが Windows ファイアウォールを使用している場合、これはうまく機能しますが、Norman のパーソナル ファイアウォールを使用している場合、ユーザーがソリューションの実行に失敗したという報告を受けました。これに関するいくつかの質問:
- 一般に、他のファイアウォール製品は、Windows ファイアウォールに追加されたルールを尊重しますか? もしそうなら - これは単なるインポートですか、それともファイアウォール製品は常に Windows ファイアウォール ルールの変更を尊重しますか?
- ファイアウォールの例外を追加して、WiX のファイアウォール拡張機能などのインストーラー中にすべて/多くのファイアウォールがそれらを尊重するようにする一般的な方法はありますか?
- netshを使用すると、ファイアウォールの例外が Windows ファイアウォール以外の製品に追加されますか?
msbuild - Firewall 拡張機能を使用する WiX インストーラーをローカライズする
MSBuild を使用して MSI ファイルを生成する WiX インストーラー プロジェクトがあります。WXS ファイルには、WiX ファイアウォール拡張機能が含まれています。
次の定義を使用して、MSBuild ファイルに 2 つのカルチャを定義しました。
翻訳されたリソースも追加しました。
これらは、ファイアウォール拡張機能と WixUI 拡張機能のノルウェー語への翻訳を表します。ビルドを実行すると、en-us 部分は成功しますが、no-no 部分は失敗し、次のエラー メッセージが表示されます。
C:\delivery
いくつかの問題:ディレクトリがどこから来たのかわかりません。私はそのようなディレクトリを持っていません。エラー メッセージで参照されているローカライズ変数は、Firewall_no-no.wxl ファイルで翻訳されています。
より詳細な情報を使用して MSBuild を実行すると、エラー メッセージの直前に次の出力が表示されます。
詳細が示すように、MSBuild タスクは-loc
、Light 実行可能ファイルに対して 2 つのパラメーターを持つことになります。それがこの問題の原因かどうかはわかりません。これを解決する方法についてのアイデアはありますか?
wix - .net 4.0 で Wix 管理のカスタム アクションを構築する
最近、すべてのコード ベースを .net 4.0 にアップグレードしたばかりで、インストーラーで .net 4.0 を使用してカスタム アクションを構築しようとしています。
それを行うためにwix 3.5を使用しています.BadImageExceptionを取得しています.現在ロードされているものよりも新しいバージョンの.netランタイムを使用してビルドされていると言っています.
wix 3.5 の makexca ユーティリティは .net 4.0 をサポートしていますか?
wix - パッチ中にWindowsユーザーが削除および作成されないようにする方法
WiX拡張機能WixUtilExtensionを使用してWindowsサービスのユーザーを作成するプロジェクトがあります。(.mspを使用して)インストールにパッチを適用すると、カスタムアクションRemoveUserとCreateUserが実行されます。
これらのWiX拡張機能で作成されたカスタムアクションをパッチ中に実行したくありません。
これを防ぐために、 MSIのInstallExecuteSequenceテーブルのカスタムアクション(ConfigureUsers)に条件を直接追加できますが、WiXでこれを処理する方法が見つかりません。
WiXを使用して、パッチ中にRemoveUserとCreateUserが実行されないようにするにはどうすればよいですか?
wix - WiX3-util:XmlFile要素は、新しいユーザーが最初にマシンごとのインストールを使用したときに再度実行されます
.netwinformアプリを顧客のマシンに展開するためのWiXインストーラープロジェクトを作成しました。アプリはドキュメントをスキャンし、画像をサーバー上のデータベースに保存するだけです。スキャナーは非常に特殊で、社内に1つしかありませんが、約1台あります。たまに使用できる4人のユーザー=>アプリはスキャン専用の単一のワークステーションにインストールされます-ほとんどの場合無料で、これらのユーザーは誰でもドキュメントをスキャンして作業を続けることができます。
=>マシンごとのインストールを行っています:ALLUSERSは1にハードコードされています。
本番環境のデータベースサーバーは私によって制御されておらず、データベースがどこに保存されるか本当にわからないため、正しいConnectionStrings.configファイルをMSIアーカイブにパックできません。その代わりに、セットアップは、インストール中にユーザーから提供されたパラメーター値に従ってこの構成を変更します。接続文字列を更新するには、util:XmlFile要素を使用します。connectionstrings.configファイルは、アプリのバイナリと一緒にインストールディレクトリに保存されます。
このマシンごとのインストールを使用して2人のユーザーをシミュレートするまで、すべてが正常に機能しているように見えました。自分のアカウントでwixセットアッププロジェクトを実行し、XML構成ファイルが正しく更新された後、アプリケーションを起動して、接続文字列に問題がないことをテストしました。すべてが大丈夫でした。
次に、別のユーザーアカウントに切り替えました。インストールがマシンごとであるため、私が予想したように、ショートカットはプログラムメニューにすでに存在していました。そこで、ショートカットをクリックしてから、(予期せずに)プログレスバーウィンドウ「製品XYの構成が完了するまで待ちます」をクリックしました。現れた。(私のマシンロケールは英語ではないことに注意してください。英語ロケールのワークステーションでは、メッセージが少し異なる可能性があります)。数秒後、ウィンドウが消え、アプリケーションが起動しました。残念ながら、connectionStrings.configファイルが書き直されたため、データベースに接続できませんでした。接続文字列は、デフォルトの(=不正な)プロパティ値を使用して更新されました。
私は、新しいユーザーアカウントがセットアップを使用しようとするたびに、セットアップが再び起動する理由を調査してきました。これは、ショートカット要素が原因です(ショートカットは「ProgramMenuFolder」に配置されます。アンインストールアクションの要求があり、AFAIKには親コンポーネントが必要であり、このコンポーネントにはKeyPathが必要です。KeyPathはHKCUのレジストリキーである必要があります)。WXSからすべてのProgram-Menu-Shortcut-stuffを削除すると、ユーザーコンテキストを切り替えた後、MSIが再度起動されません。
その結果、入力パラメータに従ってデータベースへの接続を構成できるセットアッププログラムができました。ただし、後で2番目のユーザーアカウントからアプリを使用しようとすると、この構成がトイレに送信されます。これは、実稼働環境では、新しいユーザーがアプリを使用しようとするたびに、管理者が接続文字列を手動で変更する必要があることを意味します。これはもちろん許容できない動作です。
これは私のWiXソースの簡略化されたバージョンです:
問題を解決するためにこれらの手順を試しましたが、何も役に立ちませんでした
。1)とを独立したコンポーネントに分離しました。
2)これらのコンポーネントの下にインストールされていないものを追加しようとしました。
3)インストール中にHKLMにレジストリ値を書き込んでみました。そのレジストリ値のRegistrySearchとPropertyを追加し、その値を条件として使用しました(実際には、以前の「未インストール」の単なる置き換え)
誰かがこれを手伝うことができますか?私は何が間違っているのですか?
アドバイスありがとう
マレク