WPF アプリケーションでサードパーティの UI コントロールを使用しようとしています。この特定のコントロールには魅力的な機能/特性がたくさんありますが、ライセンス スキームは本当に苦労しました... しかし、これはおそらく多くのサード パーティ ベンダーの運用方法です。
私たちのソリューションには、2 つの関心のあるプロジェクトがあります。簡単にするために、これらを「StartUpProject」および「FeatureAProject」と呼びます。他の開発者が作業するアプリケーション内の他のプロジェクトの名前が「FeatureBProject」、「FeatureCProject」などであるとします…</p>
StartUpProject には、すべての Feature*Projects への参照が含まれています。
サード パーティの dll は共通の "References" フォルダーにあり、両方のプロジェクト (StartUpProject と FeatureAProject) はこのファイルの場所からサード パーティのアセンブリを参照します。
-- StartUpProject は、App.xaml/App.xaml.cs を含むメインの WPF スタートアップ プロジェクトです。これには、サード パーティ コントロール用のエントリが 1 つある licx ファイルが含まれています。
-- FeatureAProject には、このサードパーティ UI コントロールの実装が含まれています。
サード パーティ コントロール会社のライセンス スキームの実装方法により、VS を介してアプリケーションを簡単にビルドするには、すべての開発者がサード パーティ コントロールのライセンス コピーをインストールする必要があります (FeatureA 以外の機能に取り組んでいる開発者であっても)。
これを回避する方法があるはずです...
「サード パーティ コントロール開発者」(つまり、FeatureA 開発者) だけが自分のマシンにインストールされたコントロールのライセンス コピーを必要とし、他の開発者が引き続きソリューションを構築できるように、ソリューションとプロジェクトを構成したいと考えています。 .
私の最初の考えは、ライセンスされた開発マシンから構築されたバイナリ参照を利用することです。
(1) どのアセンブリをバイナリ参照にする必要があるかわかりません: StartUpPorject または FeatureAProject? ライセンス チェックをトリガーするのは StartUpPorject の licx ファイルであり、したがって、ライセンスのない開発者のビルドで例外が発生しますか?
(2) バイナリ リファレンス ルートを使用する場合、1 人の開発者が FeatureAProject に変更を加えるたびにリファレンスを更新する必要があります。これを完全に回避するより良い方法はありますか?このサード パーティ コントロールの使用全体を、ライセンス取得済みのマシンから 1 回ビルドされる追加のアセンブリにリファクタリングすることはできますか? その後、FeatureA はこのアセンブリを使用でき、FeatureA に変更が加えられたときにアセンブリを更新する必要はありません。
それが理にかなっていることを願っています。
ありがとう!