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