在添加nuget包时,PublicToken有时会在引用其他时候用不到.如何阻止它

本文关键字:候用不 其他 何阻止 引用 包时 PublicToken 添加 nuget | 更新日期: 2023-09-27 17:51:16

我正在尝试调试此消息:

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创建的引用一致,我的问题就会解决。

程序集一度被签名。我认为如果我从项目中删除了signed assemblies = false,引用行为就会改变,但情况似乎并非如此。

在一个解决方案中,我在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包添加到一个项目,然后下一个项目。一个工作和另一个没有-我看不到任何在项目文件解释为什么。

在添加nuget包时,PublicToken有时会在引用其他时候用不到.如何阻止它

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