[リンクとして追加] オプションを使用して、複数のアセンブリに同じソース ファイルのインスタンスを含めています。特に、これらのアセンブリ内に同じソースのインスタンスを含める必要があります。これは、アセンブリの内部で発生する必要があるライセンスの検証を担当するためです。モジュールの境界を越えてライセンス コールを実行すると、セキュリティ リスクが発生する可能性があります。
コードを含む私のソリューションのプロジェクトの一部は、コードを含む他のモジュールに依存しているため、警告CS0436が発生します。
「[licence.cs フル パス] のタイプ [タイプ] は、[licence.cs を含む依存関係プロジェクト] のインポートされたタイプ [LicenceClass] と競合します。[licence.cs フル パス] で定義されたタイプを使用します。」.
クラス エイリアスを宣言しようとしましたが、licence.cs 内部の定義によって同じ警告が発生します。エイリアスには、同じ警告の原因となる重複したクラス名への参照が必要です。
アセンブリ間でソースを複製するのは悪い習慣であることはわかっていますが、この場合は意図的なものです。警告を回避するために、名前が変更されたクラスを持つ専用インスタンスではなく、各アセンブリがリンクする中央インスタンスを保持したいと思います。
私が持っている回避策は、#pragma
. よりエレガントなソリューションはありますか?