再次,我正在回答我自己的问题......
关键是,我正在改变解决方案的结构并移动了一些项目。这意味着,您会在每个项目的 .csproj 文件中获得无效的相对路径。没关系,只要你不改变结构的深度,我就是这么做的。
由于未知原因,调试构建在无效路径的情况下运行良好(可能以其他方式收集程序集,因为我手动删除了 bin 和 obj 文件夹并清除了解决方案等)。但是对于发布版本,它尝试从(错误引用的)packages/ 目录中获取程序集。
NuGet 进程的任何部分都没有发现/报告此问题,并且在所有 UI 控制台中,甚至在 NuGet PowerShell 控制台本身中,一切似乎都还不错。
解决方案很明显。编辑受影响项目的 .csproj 文件(我实际上是通过过滤警告和发现,只有一些程序集受到影响并且那些来自主解决方案目录之外的程序集)并更改程序集引用的路径以正确的 NuGet 包文件夹。
旁注:这是 NuGet(可能还有 VS)引用处理的问题。它试图使用一些相对路径,而不是添加一些变量,如 ${SOLUTION_ROOT} 或 ${NUGET_ROOT} 或 ${PACKAGES_FOLDER}。如果它是通过变量替换完成的,则可以在多个解决方案中使用相同的项目,而不会破坏 NuGet 包配置。至少我还没有找到跨多个解决方案共享同一个项目文件夹的方法。