gpt4 book ai didi

ubuntu - 如何使用 dotnet 将 .nupkg 推送到私有(private) NuGet 源?

转载 作者:行者123 更新时间:2023-12-04 18:37:31 25 4
gpt4 key购买 nike

我正在创建一个引用 CodeBuild 项目的 AWS CodePipeline。此 CodeBuild 启动了一个 Ubuntu 计算实例,并引用了 buildspec.yml文件。在后期构建阶段,我想推送 .nupkg到私有(private) NuGet 源。

以下 window 命令行逻辑工作得很好:

> 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

由于 nuget.exe 在 Ubuntu 实例上不可用(如果我安装单声道并执行 mono nuget.exe ... 可能会出现这种情况,但这需要很长时间,即使在大型构建实例上也是如此), 我想使用 dotnet nuget .我将如何实现这一目标?

我了解 dotnet nuget应该可以让我实现与上面显示的等效,但我发现文档很神秘,而且我正在努力寻找类似的帖子。

我已经尝试安装 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: ...))
...
...

我确认 .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.
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
...

无需安装单声道。我希望这有帮助!

关于ubuntu - 如何使用 dotnet 将 .nupkg 推送到私有(private) NuGet 源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57042005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com