dotnet restore无法恢复私有NuGet包

9
我在Windows中开发了一个Web API(.Net Core),现在将其托管在Ubuntu服务器上。我的应用程序需要从私有NuGet存储库获取软件包。 我已设置软件包源为nuget config -Set RepoName=http://sample-nuget-repo.net/api/odata。 我已经验证了NuGet资源。 但是,当我运行dotnet restore时,它给出了失败消息。 如果我漏掉了任何内容,请帮助我。
请问nuget.config文件在Ubuntu的路径是什么(在Windows中它位于appdata/nuget/nuget.config)?

1
dotnet restore app.sln --source http://sample-nuget-repo.net/api/odata 解决了我的问题。 - Shekhar
1
我们可以全局配置它吗? - Shekhar
1个回答

16

您可以在包含源代码的源代码控制存储库的根目录中的NuGet.Config文件中定义自定义软件包源。然后,您就不需要在每台机器上进行配置。

NuGet.Config:

<configuration>
    <packageSources>
        <add key="NuGet.org" value="https://api.nuget.org/v3/index.json" />
        <add key="sample-nuget-repo" value="http://sample-nuget-repo.net/api/odata" />
    </packageSources>
</configuration>
当你运行nuget restore solution.sln或者dotnet restore solution.sln时,首先会检查解决方案目录下是否存在NuGet.Config文件,然后逐级向上检查直到根目录。最后将检查用户个人资料目录下的NuGet.Config文件。

谢谢Matt。是的,NuGet包源存储在Windows中的nuget.config文件中。在Linux上是否也创建了nuget.config文件?如果是,这个文件的位置在哪里? - Shekhar
1
您可以在任何平台上(Linux、Mac和Windows)使用NuGet.Config文件。您只需要将其与源代码一起创建,使其独立并且不需要在构建服务器上进行额外的设置。如果您想在构建服务器上单独配置它,则需要在~/.config/NuGet/NuGet.config文件中添加此信息,或者在构建脚本中使用“nuget”本身来添加此软件包源。 - Matt Ward

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