我有这种解决方案和项目的结构:
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中打开每个解决方案,那就没关系了。
这是我的每个* .sln文件中的nuget设置:
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
?
答案 0 :(得分:17)
尝试nuget restore solutionABC.sln
请参阅https://docs.nuget.org/consume/command-line-reference
请参阅下面的粗体部分,了解您收到错误的原因。
恢复命令备注
恢复命令按以下步骤执行:
确定恢复命令的操作模式。
如果指定了 packages.config文件,则nuget将恢复packages.config文件中列出的包。
如果指定了 solution ,nuget将恢复解决方案项目的包。在这种情况下,nuget需要找到解决方案文件。
如果 solution 是一个文件,那么该文件将用作解决方案文件。
如果 solution 是一个目录,则nuget会在该目录中搜索* .sln文件。如果找到一个文件,该文件将用作解决方案文件。否则,nuget会显示错误消息并退出。
如果没有提供参数, nuget首先在当前目录中查找解决方案文件。 如果只有一个解决方案文件,nuget将恢复该解决方案的包。如果有多个解决方案文件,则会显示错误消息并退出nuget。
如果没有解决方案文件,nuget会在当前目录中搜索packages.config文件。如果该文件存在,nuget将恢复packages.config文件中列出的包。
如果当前目录中没有解决方案文件且没有packages.config文件,则会显示错误消息并退出nuget。
如果操作模式正在恢复解决方案,则-SolutionDirectory选项不适用。在这种情况下,nuget会显示错误消息并退出。