問題タブ [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.
path - 現在の wix-library (wixlib) のフォルダーへの参照
私が現在いる「wix-library」プロジェクトに相対的な File/@Source を定義するにはどうすればよいですか?
私が使用する場合:
それから "。" は、呼び出し元の「Windows インストーラ パッケージ」プロジェクトのルートを参照しているため、使用できません!
wix - 参照されたソリューションで WixLib プリプロセッサ変数を変更しようとしています
複数のプロジェクトに含めたい DLL のセットを指すフラグメントを含む WixLib プロジェクトとソリューションを作成しました。
ただし、このwixlibを他のソリューションから参照すると、dllが含まれているディレクトリのプリプロセッサ値がwixlibに付属しています。この値をオーバーライドするか、更新したいと思います。
私の Wixlib は次のようになります。
別のソリューションで var.FarPointDir に別のディレクトリを指定したいのですが、どうすればよいですか? Wix 3.6を使用しています
wix - WIX セットアップ ライブラリからファイル参照の整合性を維持するにはどうすればよいですか
Wix Toolset 3.8 Visual Studio アドインを使用しています。さまざまなサービス展開プロジェクトで使用されるいくつかの共通コンポーネントをカプセル化する WIX セットアップ ライブラリを作成しました。このライブラリには、各展開にパッケージ化する必要があるいくつかのソリューション ファイルへの参照が含まれています。
これらの依存関係は、私の wix ライブラリ フラグメントでいくつかの異なる方法で使用されています。例えば:
WIX セットアップ ライブラリは、ファイルをリンクとしてプロジェクトに追加するか、プロジェクト ディレクトリにコピーするかに関係なく、プロジェクト ディレクトリでファイルを参照するか、元の場所への相対パスを使用するかに関係なく、正常にビルドされます。問題は、サービス展開用の WIX セットアップ プロジェクトにフラグメントを含めるときに発生します。
セットアップ プロジェクトは、フォルダー構造内で同じ相対的な深さにないため、相対パスは、WIX ライブラリから参照される場合と同じ場所を指しません。アクションまたは機能を WIX ライブラリから参照すると、The system cannot fine the file '.\Dependency1.dll'
「The XML is being read immediately as it is and referenced from the Setup Project location not from the Library Project location, so the relative directory is wrong.」のようなエラーが表示されます。WIX ライブラリ内の相対パスを、それを使用するセットアップ プロジェクトの相対パスに設定するか、ソリューション ファイルをセットアップ プロジェクト ディレクトリにコピーすることもできますが、もちろん、それでは、共通の WIX ライブラリ。このライブラリを使用する必要がある他のサービス展開プロジェクトがあります。
問題は、セットアップ プロジェクトが存在するディレクトリに関係なく、それを使用するセットアップ プロジェクトで使用できる方法で、WIX ライブラリ内のソリューション ファイルを参照するにはどうすればよいかということです。
c# - さまざまなプラットフォームをサポートするファイル参照として wixlibs を使用する方法は?
分散 C# プロジェクト構造を WIX セットアップ プロジェクトに複製しようとしています。現在、次の問題があります。
LIB:複数の C# プロジェクトから AnyCPU .NET dll をビルドする C# ライブラリ ソリューション
APP: LIB からの dll は、このメイン アプリケーション ソリューションによって (ファイル参照として) 参照されます。さらに、このアプリケーション ソリューションにはプラットフォーム依存のライブラリが含まれているため、2 つの特定のターゲット プラットフォーム x86 および x64 用のセットアップを作成できることが重要です。
ここで、APP ソリューション内で wixsetup プロジェクトの作成を開始しました (正常に動作します)。次に、LIB .NET dll を wixlib に参照する LIB ソリューション内に wixlib を作成しました。
今問題:
wixlib は、wixlib の作成時にプラットフォーム固有のタグが付けられているように見える DirectoryRef 内の AnyCPU .NET dll を参照します。したがって、LIB ソリューションに戻り、1 つのプラットフォーム ターゲットでプロジェクトをビルドし、ビルドされたファイルを (SVN 外部メカニズムを介して) APP ソリューションにコピーし、wixlib が作成されたのとまったく同じターゲット プラットフォームでこのプロジェクトをビルドし、他のプラットフォームを作成するには、この手順を繰り返します。
これはちょっと複雑に思えるかもしれませんが、実行可能です。同じ問題が適用される他のいくつかのライブラリ ソリューションを省略したという事実と、これらすべてのライブラリが複数のアプリケーション ソリューションで使用されているという事実と、最終的にはすべてがビルド サーバー上で自動的に実行される必要があるという事実により、これは機能しません。
ただし、次の解決策を知っています。
wixlib 内の .NET dll 参照を 2 倍にして、異なる DirectoryRef INSTALLDIR および INSTALLDIR32 に割り当て、wixsetup でこれらの異なるディレクトリ参照を実装します。しかし、これも物事を複雑にするため、私の好ましい解決策ではありません-代替手段がある場合.
賢明な代替手段がない場合は、教えていただければ、最後の段落で説明したように対処します。
wix - wixlib のリンク中に孤立したコンポーネントを処理する
私は、サードパーティが提供する同じ wixlib に基づいて 2 つのインストーラーを構築する任務を負っています。フル インストーラーにはすべてのコンポーネントが含まれ、Lite にはコア部分のみが含まれます。wixlib には次の構造があると仮定します。
インストーラーは msbuild でビルドされます。コンポーネントは、次の方法でプロジェクトに組み込まれます。
最後に、予想どおり、LGHT0267 エラーが発生します。
エラー LGHT0267: 孤立したコンポーネント 'BigFile1' が見つかりました。これが製品の場合、すべてのコンポーネントに少なくとも 1 つの親機能が必要です。Component を Module に含めるには、それを Module 要素の Component 要素として直接含めるか、ComponentRef、ComponentGroup、または ComponentGroupRef 要素を介して間接的に含める必要があります。
wixlib で提供されているコンポーネントを選択的に使用する方法について、回避策を思いついた人はいますか? ユーザー向けの別の機能として含めることもできますExtraStuff
が、ここでの目標はインストーラーを縮小することです。ThirdParty に 2 つの別々の wixlib を提供するよう丁寧に依頼することもできますが、それは避けたいと思います。
wix - 同じ File/@Id を持つ 2 つの Wixlib を参照する WiX Setup プロジェクト
WiX は初めてですが、複雑なシナリオが必要です。複数の WCF ライブラリ (つまりモジュール) を含むモジュラー Web アプリケーションを管理しており、すべてのモジュールを機能として最終セットアップに配置する必要があります。
そのため、ファイルWiX Setup Library
を生成するすべてのモジュールと、プロジェクトを参照する単一のモジュールを管理し、最終的なセットアップでモジュール (つまり ) と機能の間の 1 対 1 の関係になります。.wixlib
WiX Setup
.wixlib
.wixlib
間で同じファイルが共有されている場合に問題が発生します。これは、それらの共有ファイルに存在する と が.wixlib
類似File/@Id
しているためです。Componend/@Id
PS:ファイルをビルドするエンジンとしてWaXを使用しました。これは、.wxs
ファイル名をファイルとして使用するだけFile/@Id
です。Component/@Id
.wxs
私は2つの可能な回避策があると信じています(私はそれらのどれも達成できませんでした!)
- WaXが乱数を生成
File/@Id
しComponent/@Id
、すべてのファイルに対して強制的に生成する方法。 - これは、最終ファイルのコンパイルおよび生成中にランダムな ID を追加する
Lit.exe
(誰が をビルドする) ための方法である可能性があります。.wixlib
File/@Id
Component/@Id
.wixlib
あらゆる種類の助けをいただければ幸いです。