Nuget恢复错误:此文件夹包含多个解决方案文件。

7

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

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

1个回答

18

尝试运行命令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会在当前目录中搜索packages.config文件。如果该文件存在,则nuget将还原列在packages.config文件中的包。

如果当前目录中没有解决方案文件和packages.config文件,则显示错误消息并退出。

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


谢谢。有趣的是在“nuget.exe”的最后一行上,它说:“有关更多信息,请访问http://docs.nuget.org/docs/reference/command-line-reference”。我真懒。 - Dio Phung

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接