我们有一个构建步骤,用于在构建服务器 (TeamCity) 的解决方案中安装和更新 nuget 包。最近,这已停止正确进行更新。我对此进行了调查,发现问题似乎是nuget中的更新命令没有更新解决方案中的所有项目。我可以在我的本地机器上复制它。
当我运行这个命令时:
.nuget\NuGet.exe update Our.Company.sln -Source http:/ourTcServer:8888/guestAuth/app/nuget/v1/FeedService.svc -RepositoryPath packages -verbosity detailed
我得到了它要更新的 10 个项目的列表
Found 10 projects with a packages.config file. (
Company.Project1.csproj,
Company.Project2.csproj,
Company.Project3.csproj,
Company.Project4.csproj,
Company.Project4.SubProject1.csproj,
Company.Project4.SubProject2.csproj,
Company.Project1.SubProject1.csproj,
Company.Project1.SubProject2.csproj,
Company.Project2.SubProject1.csproj,
Company.Project2.SubProject1.FurtherSubProject1.csproj)
然而,该解决方案包含 13 个项目,这些项目都包含packages.config
文件,据我所知,与其他任何项目都没有什么不同。这些项目是单个项目及其子项目,我们的项目目录结构与项目名称匹配(因此 project1.subproject1 意味着 subproject1 位于 project1 内的文件夹中)以防万一。有问题的项目都在一个具有特定名称的项目中,例如:
Company.Something.SomethingElse.Routing
Company.Something.SomethingElse.Routing.Tests
Company.Something.SomethingElse.Routing.Tests.Specifications
如果名称的路由部分导致问题(我们在使用Resources
包名称末尾的单词之前遇到问题)
我们有 50 多种解决方案,它们都使用相同的构建配置和步骤,并且适用于所有解决方案。该解决方案似乎是唯一没有正确更新的解决方案。
有谁知道为什么会这样?或者有谁知道在解决方案中找到包的代码会导致它找不到一些 packages.config 文件吗?或者任何可能有助于追踪这个问题的东西?