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 个项目,然后是下一个项目。一个有效,另一个无效 - 我在项目文件中看不到任何解释原因的内容。

4

1 回答 1

0

NuGet 使用底层 VS 层在安装包时添加引用。当您尝试手动将此引用添加到这些项目时,会有什么行为?

于 2013-02-03T01:35:27.983 回答