将 NuGet 包推入 GitLab 包注册表时出错 -> NuGet.Temporary.Package

时间:2021-07-06 11:30:50

标签: gitlab nuget

我无法将 NuGet 包推送到我们公司的 GitLab 包注册表中。

在我的 NuGet-Package 中,我打包了一些二进制文件。这是 Nuspec 文件:

<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata>
    <id>test</id>
    <version></version>
    <authors>Company</authors>
    <description>Demo Project</description>
  </metadata>
  <files>
    <file src="../../__out/test/**" target="" />
  </files>
</package>

我构建了在 CI 中看起来不错的 nuget 包(我已经下载并检查了 nuget 文件)

构建后,我将带有此 CI 作业的 NuGet-Package 推送到注册表中。 Gitlab CI:

deploy:
  stage: deployNuGet
  image: mcr.microsoft.com/dotnet/sdk:5.0-buster-slim
  script:
    - dotnet nuget add source "$CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/packages/nuget/index.json" --name gitlab --username gitlab-ci-token --password $CI_JOB_TOKEN --store-password-in-clear-text
    - dotnet nuget push __out/package/test.0.0.1.nupkg" --source gitlab

这会导致以下 CI 日志:

$ dotnet nuget add source "$CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/packages/nuget/index.json" --name gitlab --username gitlab-ci-token --password $CI_JOB_TOKEN --store-password-in-clear-text
Package source with Name: gitlab added successfully.
warn : No API Key was provided and no API Key could be found for 'https://XXXX/api/v4/projects/XXXX/packages/nuget'. To save an API Key for a source use the 'setApiKey' command.
Pushing test.0.0.1.nupkg to 'https://XXXXXX/api/v4/projects/XXXXX/packages/nuget'...
  PUT https://XXXXX/api/v4/projects/XXXXXX/packages/nuget/
  Created https://XXXXX/api/v4/projects/XXXXXX/packages/nuget/ 780ms
Your package was pushed.

这在退出一段时间后效果很好,但现在我得到了不同的行为。 代替 test 包的是 NuGet.Temporary.Package

enter image description here

当我移过错误标志时,它会显示以下消息:

Invalide Package: failed metadate extraction

有人知道如何解决这个问题吗? 谢谢! 扬

1 个答案:

答案 0 :(得分:0)

这是自我管理的 AWS 实例上的 gitlab (14.0.x) 错误。

还有一个 MR 可以解决这个问题。

这是一个 sulution https://gitlab.com/gitlab-org/gitlab/-/issues/335488#note_623985000