我正在尝试运行:
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)。
答案 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。