2つのプロジェクトAとBがあります。プロジェクトAはプロジェクトBでタイプXを使用しているため、AにBへの参照が追加されています。すべてが正常に構築されています。
強力な名前付きキーファイルを使用してプロジェクトBに署名しました。すべてがまだうまく構築されています。
次に、Bの厳密な名前付きキーファイルを変更することにしました。プロジェクトBokを再構築しました。プロジェクトAIをビルドしようとすると、「エラー1タイプXは、参照されていないアセンブリで定義されています。アセンブリB、バージョン= 1.0.0.0、カルチャ=ニュートラル、PublicKeyToken = 95b41b0d6571627b 'への参照を追加する必要があります。 「」
そこで、プロジェクトAの参照を削除して、再度追加しました。喜びはありません。プロジェクトAのプロジェクトB参照をダブルクリックし、オブジェクトブラウザーを開いて、そこにタイプXが表示されていることを確認できます。また、AのタイプXオブジェクトを完全に修飾し、インテリセンスがそれらを正常に取得しましたが、それでもビルドされません。
キーファイルを変更するとリビジョンを上げる必要があるかもしれないと思ったので、アセンブリBのバージョンを2.0.0.0に変更しましたが、それでもAはバージョン1.0.0.0が必要だと文句を言います。 AのB参照のプロパティを見ると、間違いなく正しいバージョンを示しており、実際には2.0.0.0と表示されます。
既存のキーファイルを使用して生きることはできますが、可能であればどこが間違っているのかを理解したいと思います。
コメントであなたが言ったことに基づいて、私はそれがプロジェクトAで最も間違いなく何かであると言うでしょう。
おそらく、これらの手順はそれを修正するのに役立ちます:
プロジェクトへのすべての参照を削除したら、ボトルネックの提案に従ってプロジェクトをリロードし、それで問題が解決するかどうかを確認します。
回答が遅れて申し訳ありませんが、これは私を助けました:
(現在AnyCPUソリューションプラットフォームがあると仮定します)
グーグルからここに来る人々を助けるために、 マーリンのコメント 遅延について尋ねる-署名は私にとっての答えでした。
アセンブリBで定義されたタイプXを参照する遅延署名されたアセンブリAを参照すると、このエラーが発生しました。Bが参照されていないというエラーが発生しました(すでに署名されたバージョンのBを参照していました)。
修正は、署名されたバージョンのAを見つけて参照することでした。
xがAを継承する場合は、Bで参照する必要があります
プロジェクトAのプロジェクトファイル(projectA.csproj)を編集してみてください。 Visual Studioでこれを行うには、プロジェクトを右クリック->プロジェクトをアンロードしてから、アンロードされたプロジェクトを右クリック->ファイルを編集します。そこでプロジェクトBへの参照を検索し、必要に応じて修正してみてください
私にとってうまくいったのは、プロジェクトへの参照を削除してから、再度追加することでした。欠落している3番目のライブラリへの参照が必要であることを示す新しいエラーメッセージが表示されたため、元のメッセージは少し誤解を招くものでした。