NuGet Pack - 无法从远程源检索信息

时间:2016-10-28 22:03:44

标签: nuget

我正在尝试运行:

nuget pack project.csproj

但由于项目的目录结构:

A \ B \ C \项目

它一直在说:

NuGet.Protocol.Core.Types.FatalProtocolException:无法从远程源&A; B \ Packages'中检索信息,它确实应该是&A; Packages'。如何在建立依赖关系时更改NuGet查找包的位置。

我尝试在项目目录和解决方案(在.nuget中)中放置NuGet.config。我把它添加到文件中:

<config>
    <add key="repositoryPath" value="A\Packages" />
</config>

在这两个地方都没有区别(它总是说A \ B \ Packages)。

8 个答案:

答案 0 :(得分:5)

错误有点奇怪,但是already mentioned here

默认情况下,NuGet需要一个与.csproj文件位于同一位置的packages文件夹。

我还有一个自定义项目结构,其中.sln位于另一个文件夹中。

至少我通过创建这样的符号链接(使用管理员权限打开cmd)解决了这个问题:

cd <your .csproj location>
mklink /d packages "C:\path\to\actual\packages"

这样NuGet认为packages文件夹存在并且应该能够创建你的包。

答案 1 :(得分:3)

对我而言,它通过在解决方案文件夹中添加NuGet.config来实现。

答案 2 :(得分:3)

我在核心3.1上遇到类似的问题,并尝试升级软件包'Swashbuckle.AspNetCore.SwaggerGe'。我发现我在软件包源URL中打错了字。我已经更正了它[工具=> Nuget程序包管理器=>程序包管理器设置=>程序包源],问题已解决。

答案 3 :(得分:2)

问题可能是由nuget查找packages文件夹的方式引起的。它通过遍历目录结构来查找.sln文件。如果在您的情况下,目录A \ B包含.sln文件,那么nuget将假定packages文件夹也将在那里。

答案 4 :(得分:1)

在软件包源代码中添加NuGet.org参考 转到工具-> NuGet包管理器->包管理器设置 选择NuGet软件包管理器,然后选择软件包源 添加以下源库。

名称:NuGet.org

来源:{“ \ Https://api.nuget.org/v3/index.json}

答案 5 :(得分:1)

VisualStudio 2019:工具>Nuget 包管理器>包来源:nuget.org 选择和其他特定的取消选择

答案 6 :(得分:0)

在OSX上,您可以添加符号链接以将nuget引入构建。

在项目文件夹中运行以下命令以从具有packages文件夹的父(解决方案)目录中读取nuget:

ln -s ../packages packages

答案 7 :(得分:0)

如果您使用的语义版本为2.0.0,请确保您在NuGet配置中使用的是V3提要https://api.nuget.org/v3/index.json