我使用 Azure DevOps 管道进行构建和发布。
我有 1 个包含多个项目的解决方案,在 nuget 包恢复步骤的构建过程中,我希望它只恢复我部署到的项目的包
假设我有一个名为 Main.sln 的解决方案
我有 2 个项目,名为project1.csproj 和project2.csproj
发布进展顺利,但需要相当长的时间,因为 NuGet 恢复步骤从 Main.sln 中获取每个包,而不是每个项目。
我希望它只恢复我命令它在 nuget 恢复设置 (/project1/packages.config) 中转到的特定packages.config
我收到以下错误:
Cannot determine the packages folder to restore NuGet packages. Please specify either -PackagesDirectory or -SolutionDirectory
最佳答案
Azure Devops packages.config path in multi project solution
这是因为默认情况下,nuget 包会与所选解决方案文件一起恢复到 /packages
文件夹中。
如果我们在没有解决方案文件的情况下指定特定的packages.config
/项目文件
,则nuget无法确定用于恢复NuGet包的包文件夹。
在这种情况下,我们需要手动指定PackagesDirectory
或SolutionDirectory
,以便nuget知道在哪里存储包。
要解决这个问题,如果你是nuget命令行恢复包,就按照错误日志的提示,使用参数-PackagesDirectory
或-SolutionDirectory
来指定文件夹。
如果您使用的是经典编辑器,则有用于 nuget 恢复任务的目标目录选项:
您可以指定存储包的文件夹。
希望这有帮助。
关于多项目解决方案中的 Azure Devops packages.config 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57772664/