【问题标题】:Nuget restore error: This folder contains more than one solution fileNuget 还原错误:此文件夹包含多个解决方案文件
【发布时间】:2015-10-11 12:47:28
【问题描述】:

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

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

【问题讨论】:

    标签: c# nuget build-process nuget-package-restore


    【解决方案1】:

    试试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 会显示一条错误消息并退出。

    【讨论】:

    • 谢谢。有趣的是,在“nuget.exe”的最后一行,它说:For more information, visit http://docs.nuget.org/docs/reference/command-line-reference。懒死我了
    猜你喜欢
    • 2012-05-19
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 2017-12-22
    • 1970-01-01
    相关资源
    最近更新 更多