我使用dotnet pack
创建了一个nuget包,并使用
nuget sources add -Name My.Namespace -Source /full/path/to/the/packages
,然后将包添加到提要
nuget add bin/Debug/My.Namespace.0.0.0.nupkg -source /full/path/to/the/packages
nuget sources list
按预期显示了此本地供稿:
Registered Sources:
1. nuget.org [Enabled]
https://api.nuget.org/v3/index.json
2. My.Namespace [Enabled]
/full/path/to/the/packages
并且packages
的目录结构正确
/full/path/to/the/packages
└── my.namespace
└── 0.0.0
├── my.namespace.0.0.0.nupkg
├── my.namespace.0.0.0.nupkg.sha512
└── my.namespace.nuspec
但是dotnet
多次无法将包添加到项目中
$ dotnet add package My.Namespace
error: Unable to find package My.Namespace. No packages exist with this id in source(s): nuget.org
error: Package 'My.Namespace' is incompatible with 'all' frameworks in project '/Users/theonlygusti/Documents/Projects/dotnet-core-api/Fun.Project.csproj'.
并在尝试构建时手动将软件包添加到.csproj
错误中:
error NU1101: Unable to find package My.Namespace. No packages exist with this id in source(s): nuget.org
好像dotnet
并没有检查我的本地NuGet提要,因此我检查了~/.nuget/NuGet/NuGet.Config
仅包含
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
为什么我的本地提要不在这里?
如何使其显示在这里? (理想情况下,这样我就不必每次都手动编辑此文件...)
或者,如果我无法将软件包添加到其他项目的原因无关,那么我应该在本地创建并依赖NuGet软件包吗?
答案 0 :(得分:0)
默认情况下,用于添加软件包源的命令行会将其添加到路径%appdata%\NuGet\nuget.config
中的文件中。如果要修改特定的Nuget配置文件,可以使用-ConfigFile
选项指定哪个文件,例如:
nuget sources add -Name My.Namespace -ConfigFile /path/to/config -Source /path/to/packages
我猜测Nuget正在~/.nuget/NuGet/NuGet.Config
中找到配置文件,并停止搜索更多文件。
请注意,如果您所需的Nuget配置仅特定于您正在使用的项目,那么我建议您在解决方案文件夹的根目录中放置一个nuget.config
文件。
您可以找到有关配置文件位置here的信息。