C# 添加nuget包时,PublicToken有时用于引用,有时不用于。。。如何阻止它?

C# 添加nuget包时,PublicToken有时用于引用,有时不用于。。。如何阻止它?,c#,nuget,code-signing,C#,Nuget,Code Signing,我正在尝试调试此消息: 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包。当深入研

我正在尝试调试此消息:

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创建的引用保持一致,我的问题就会消失

这些集会曾被签署过。我认为如果我从项目中删除signedassemblies=false,引用行为就会改变,但事实似乎并非如此

例如,在1个解决方案中,我在2个不同的项目中使用了相同的nuget包和版本,引用不同

不正确的(或至少不需要的)


假的
..\packages\Logging.LoggingProvider.1.0.24\lib\Logging.LoggingProvider.dll
在另一个项目中,正确的是

<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>

假的
..\packages\Logging.LoggingProvider.1.0.24\lib\Logging.LoggingProvider.dll

这可能是什么原因造成的?我真的是将nuget包添加到一个项目中,然后再添加到下一个项目中。。一个工作,另一个没有-我看不到任何项目文件解释为什么

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

其他人注意到棘手的问题不再得到回答了吗?这实际上是间接的。在VS中,版本号是非常具体的,而在nuget中则不那么具体,因此依赖项的一些依赖项最终导致了问题。对项目文件中xml的一些修改修复了它,然后重新发布具有适当限定的依赖项的nuget包。
<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>