nuGet パッケージの 1 つの新しいバージョンを公開した後、一部のパッケージを使用するアプリケーションを実行するとエラーが発生します。
ソリューション 1 には、nuGet に公開されるパッケージのコードが含まれています。
- プロジェクト A、バージョン 1.0.0.0
- プロジェクト B、バージョン 1.0.0.0 (プロジェクト A へのプロジェクト参照があります)
- プロジェクト C、バージョン 1.0.0.0 (プロジェクト A へのプロジェクト参照があります)
パッケージ B と C の場合、依存関係は nuspec ファイルに明示的に記載されています。
<dependencies>
<dependency id="A" version="[1.0.0.0,]" />
</dependencies>
ソリューション 2 では、3 つのパッケージすべてを (異なるプロジェクトで) 使用します。
プロジェクト A と B の新しいバージョンが作成され、バージョン 1.0.1.0 として公開されます。すべての変更は下位互換性があります。ただし、パッケージ C を使用するプロジェクトは、新しいバージョンの A では機能しません。実行すると、「ファイルまたはアセンブリを読み込めませんでした」というエラーがスローされます。アセンブリ A、バージョン 1.0.0.0 を読み込もうとします - nuget 仕様からの依存関係の方向を無視します。
これは、ソリューション 1 でプロジェクトの参照が行われたためですか?