Ubuntu 如何使用dotnet将.nupkg推送到私有NuGet源?

Ubuntu 如何使用dotnet将.nupkg推送到私有NuGet源?,ubuntu,.net-core,nuget,aws-codebuild,Ubuntu,.net Core,Nuget,Aws Codebuild,我正在创建一个AWS代码管道,它引用了一个代码构建项目。这个代码构建启动一个Ubuntu计算实例,并引用一个buildspec.yml文件。在后期构建阶段,我想将.nupkg推送到一个私有的NuGet源代码中 以下窗口命令行逻辑工作正常: > dotnet pack path/to/my/proj.csjproj > nuget sources add -name MyPrivateRepo -source https://source -username u -password p

我正在创建一个AWS代码管道,它引用了一个代码构建项目。这个代码构建启动一个Ubuntu计算实例,并引用一个
buildspec.yml
文件。在后期构建阶段,我想将
.nupkg
推送到一个私有的NuGet源代码中

以下窗口命令行逻辑工作正常:

> dotnet pack path/to/my/proj.csjproj
> nuget sources add -name MyPrivateRepo -source https://source -username u -password p
> nuget push path/to/my/newlypacked.nupkg -ApiKey key -Source https://source
由于Ubuntu实例上没有nuget.exe(如果我安装mono并执行
mono nuget.exe…
,可能会出现这种情况,但这需要很长时间,即使在大型构建实例上也是如此),我想使用
dotnet nuget
。我将如何实现这一目标?

我知道,
dotnetnuget
应该能让我达到我在上面展示的效果,但我发现文档晦涩难懂,我正在努力寻找类似的帖子

我已经试过安装nuget,并做了以下练习

> dotnet pack path/to/my/proj.csjproj
> apt-get install nuget -y
> mozroots --import --sync
> nuget sources add -name MyPrivateRepo -source https://source -username u -password p
> nuget push path/to/my/newlypacked.nupkg -ApiKey key -Source https://source
其结果如下:

Package Source with Name: MyPrivateRepo added successfully.

Pushing proj.nupkg to 'https://source'... 
  PUT https://source 
  BadRequest https://source 120ms 
400 (Bad Request - The package does not appear to be a valid ZIP archive (could not find a valid end of central directory record) (DevOps Activity ID: ...)) 
System.Net.Http.HttpRequestException: 400 (Bad Request - The package does not appear to be a valid ZIP archive (could not find a valid end of central directory record) (DevOps Activity ID: ...))
...
...
Package Source with Name: MyPrivateRepo added successfully.
error: Unable to load the service index for source https://source. 
error:   Response status code does not indicate success: 401 (Unauthorized). 
我确认
.nupkg
确实是一个有效的NuGet包,并且存在于我指定的位置

我也试过,

> dotnet pack path/to/my/proj.csjproj
> apt-get install nuget -y
> mozroots --import --sync
> nuget sources add -name MyPrivateRepo -source https://source -username u -password p
> dotnet nuget push path/to/my/newlypacked.nupkg -k key -s https://source
其结果如下:

Package Source with Name: MyPrivateRepo added successfully.

Pushing proj.nupkg to 'https://source'... 
  PUT https://source 
  BadRequest https://source 120ms 
400 (Bad Request - The package does not appear to be a valid ZIP archive (could not find a valid end of central directory record) (DevOps Activity ID: ...)) 
System.Net.Http.HttpRequestException: 400 (Bad Request - The package does not appear to be a valid ZIP archive (could not find a valid end of central directory record) (DevOps Activity ID: ...))
...
...
Package Source with Name: MyPrivateRepo added successfully.
error: Unable to load the service index for source https://source. 
error:   Response status code does not indicate success: 401 (Unauthorized). 

谁能帮我指引正确的方向?提前谢谢。

我已经让它工作了!dotnet CLI在一个非常特殊的位置查找NuGet配置(尽管我不明白为什么我尝试的其他位置在参考了它们的文档后不起作用):
~/.NuGet/NuGet/NuGet.config
。请注意,这是区分大小写的

为了使构建管道正常工作,我有以下
buildspec.yml
结构:

...
> apt-get install nuget -y
> mozroots --import --sync
> nuget sources add -name MyPrivateRepo -source https://source -username u -password p
> mkdir -p ~/.nuget/NuGet && mv ~/.config/NuGet/NuGet.Config ~/.nuget/NuGet
> dotnet pack path/to/my/proj.csjproj
> dotnet nuget push path/to/my/newlypacked.nupkg -k key -s https://source
...
无需安装mono。我希望这有帮助