Nuget还原错误:此文件夹包含多个解决方案文件

本文关键字:包含多 解决方案 文件 文件夹 还原 错误 Nuget | 更新日期: 2023-09-27 18:04:06

我有这样的解决方案和项目结构:

projects
|--.nuget
|  |--packages.config
|
|--projFolderA
|  |--projectA.csproj  
|  
|--projFolderB
|  |--projectB.csproj  
|
|--projFolderC
|  |--projectC.csproj  
|    
|--solutionAB.sln
|--solutionBC.sln
|--solutionCA.sln

每个解决方案都配置为使用nuget使用一些库。现在,当我运行:nuget restore时,我得到了这个错误:This folder contains more than one solution file.,但是如果我在VS2013中打开每个解决方案,那么它很好。

这是我的每个*中的nuget设置。sln文件:

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{334B5D1D-8694-472B-8170-3D36A395DCEF}"
    ProjectSection(SolutionItems) = preProject
        .nuget'packages.config = .nuget'packages.config
    EndProjectSection
EndProject

我做错了什么?在这种情况下,如何从控制台运行nuget restore ?

Nuget还原错误:此文件夹包含多个解决方案文件

试试nuget restore solutionABC.sln

见https://docs.nuget.org/consume/command-line-reference

请参阅下面加粗的部分,了解为什么会出现错误。

恢复命令注释

恢复命令执行步骤如下:

判断恢复命令的操作方式。

如果包。如果指定配置文件,则nuget恢复包中列出的包。配置文件。

如果指定了solution, nuget恢复解决方案项目的包。在这种情况下,nuget需要找到解决方案文件。

如果solution是一个文件,该文件被用作解决方案文件。

如果解决方案是一个目录,则nuget搜索*。该目录下的SLN文件。如果只找到一个文件,则将该文件用作解决方案文件。否则,nuget返回错误提示并退出。

如果没有提供参数,Nuget首先在当前目录中查找解决方案文件。如果只有一个解决方案文件,nuget将恢复该解决方案的包。如果存在多个解决方案文件,则返回错误提示并退出nuget。

如果没有解决方案文件,则nuget搜索包。当前目录下的配置文件。如果该文件存在,nuget将恢复包中列出的包。配置文件。

如果没有解决方案文件和包。

如果选择当前目录下的配置文件,则返回错误提示并退出nuget。

如果操作模式是为解决方案恢复,则-SolutionDirectory选项不适用。在这种情况下,nuget显示错误消息并退出。