0

私はこのメッセージをデバッグしようとしています:

The type 'Logging.LoggingProvider' is defined in an assembly that is not referenced. You must add a reference to assembly 'Logging.LoggingProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=71561dfc7a07d5da'. 

チェーン内で相互に依存するいくつかのnugetパッケージがあります。これらのパッケージをビルドするプロジェクトファイルを調べてみると、アセンブリが参照される方法が少し異なることがわかりました。キーを持っているものと持っていないものがあります。これにより、nugetによって作成された参照を一貫性のあるものにする方法を見つければ、問題は解決すると信じていました。

議会はかつて署名されました。署名されたアセンブリ=falseをプロジェクトから削除すると、参照の動作が変わると思いましたが、そうではないようです。

たとえば、1つのソリューションで、2つの異なるプロジェクトで同じnugetパッケージとバージョンを使用しましたが、参照が異なります

間違ったもの(または少なくとも望ましくないもの)

<Reference Include="Logging.LoggingProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=71561dfc7a07d5da, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Logging.LoggingProvider.1.0.24\lib\Logging.LoggingProvider.dll</HintPath>
</Reference>

そして別のプロジェクトでは正しいものは

<Reference Include="Logging.LoggingProvider, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Logging.LoggingProvider.1.0.24\lib\Logging.LoggingProvider.dll</HintPath>
</Reference>

これを引き起こしている可能性がありますか?私は文字通り、nugetパッケージを1つのプロジェクトに追加し、次に次のプロジェクトに追加しています。1つは機能し、もう1つは機能しません。プロジェクトファイルに理由を説明するものが何も表示されません。

4

1 に答える 1

0

NuGet は、基盤となる VS レイヤーを使用して、パッケージのインストール中に参照を追加します。この参照をこれらのプロジェクトに手動で追加しようとすると、どのような動作になりますか?

于 2013-02-03T01:35:27.983 に答える