我的项目中有一个Nuget程序包,该程序包以前未签名并且没有强名称。

我已经发布了该软件包的新版本,该版本现已签名。

当我将新版本的Nuget软件包添加到解决方案中时,在项目中引用Nuget软件包中的程序集的任何地方,都会导致以下生成错误:


  错误CS0012在以下程序集中定义了类型'JsonWebToken'
  未引用。您必须添加对程序集的引用
  'TSC.Business.DataContracts,版本= 2.10.6.0,文化=中性,
  PublicKeyToken = null”。


如您所见,编译器仍期望该程序集的版本没有PublicKeyToken。

我需要尝试确定为什么编译器仍然期望此程序包的publicKeyToken为null。

我尝试过的事情-都没有运气:


通过从packages.json,packages目录,csproj文件,bin路径中删除旧版本并运行完全清除操作,完全卸载旧的Nuget软件包。
验证packages.json中新版本的publicKeyToken正确-是
清除我的临时ASP.Net文件
哎呀,甚至安装VS2019并检查其中是否存在问题-这样做


有人知道编译器还会在哪里寻找此null publicKeyToken吗?

最佳答案

从项目目录开始,在磁盘上查找project.assets.json。它可能在obj目录中。如果找到它,请删除它以及所有其他名为*.*proj.nuget.*的文件。这些将在希望有效的下一个版本中重新生成。

10-04 14:19