NuGet包在错误的文件夹中寻找依赖关系

时间:2018-10-26 19:54:54

标签: nuget teamcity nuget-package

我有多种解决方案,可以通过NuGet feed相互共享软件包(由TeamCity驱动,2018.1.3(内部版本58658))。 SolutionA向NuGet feed公开了几个项目,SolutionB的项目引用了其中一些软件包。 SolutionB的一些项目也应打包并发布到NuGet feed。 对于解决方案,打包和发布非常完美。对于SolutionB,由于奇怪的问题,依赖于从SolutionA发布到NuGet的程序包的项目打包失败。当TeamCity执行NuGet软件包还原步骤时,软件包将下载到packages\Project.From.SolutionA.3.181.181\文件夹中。然后,构建步骤成功完成,但是由于NuGet pack命令而导致打包步骤失败,因此在文件夹packages\Project.From.SolutionA\3.181.181\中查找包! 下面是pack命令的构建日志(NuGet版本为4.8.1)

Missing <TeamCityDir>\buildAgent\work\fbb25b8e9614747\packages\Project.From.SolutionA\3.181.181\Project.From.SolutionA.3.181.181.nupkg
    Error NU5012: Unable to find 'Project.From.SolutionA.3.181.181.nupkg'. Make sure the project has been built.
    NuGet.Packaging.Core.PackagingException: Unable to find 'Project.From.SolutionA.3.181.181.nupkg'. Make sure the project has been built.
    at NuGet.CommandLine.ProjectFactory.AddDependencies(Dictionary`2 packagesAndDependencies)
    at NuGet.CommandLine.ProjectFactory.ProcessDependencies(PackageBuilder builder)
    at NuGet.CommandLine.ProjectFactory.CreateBuilder(String basePath, NuGetVersion version, String suffix, Boolean buildIfNeeded, PackageBuilder builder)
    at NuGet.Commands.PackCommandRunner.BuildFromProjectFile(String path)
    at NuGet.Commands.PackCommandRunner.BuildPackage()
    at NuGet.CommandLine.PackCommand.ExecuteCommand()
    at NuGet.CommandLine.Command.ExecuteCommandAsync()
    at NuGet.CommandLine.Command.Execute()
    at NuGet.CommandLine.Program.MainCore(String workingDirectory, String[] args)

唯一被替换的是项目的真实路径和名称

1 个答案:

答案 0 :(得分:0)

您确定解决方案中没有多个解决方案文件(.sln)吗?我正在使用一个具有主要解决方案文件的较旧项目,然后一些子项目具有自己的解决方案文件。当我在TeamCity中运行构建时,尝试找到第一个nuget包并报告错误时会失败:

Error NU5012: Unable to find 'package.version.nupkg'. Make sure the project has been built.

花了一段时间,但我意识到所有失败的项目都有自己的解决方案文件,这使TeamCity感到困惑。删除文件后,构建便可以正常工作。