【问题标题】:Cannot run Nuget Package Restore from private Team City Nuget Server无法从私人 Team City Nuget 服务器运行 Nuget 包还原
【发布时间】:2023-03-28 22:09:01
【问题描述】:

当前讨论主题: http://devnet.jetbrains.com/message/5519081#5519081

错误报告:http://youtrack.jetbrains.com/issue/TW-37148

错误:无法在非交互模式下提示输入。

需要注意的一点是,凭据提示是在每次下载软件包时触发的,而不是在开始时触发。我认为这可能是 Team City 调用 NuGet 方式的一个错误,但我不确定。

我已经配置了“NuGet Feed Credentials”构建功能,配置了基本身份验证,并且我已经在 Firefox 中运行了该 Feed,并获得了要显示在代理计算机上的包列表(需要凭据)。

我的构建日志:https://gist.github.com/tonyeung/517597ca2312dad85f62

【问题讨论】:

    标签: teamcity nuget


    【解决方案1】:

    以下是一种可能对您有所帮助的解决方法,尽管我认为 NuGet 提要凭据构建功能旨在解决该问题。我在没有访客访问权限的情况下使用内部 TeamCity NuGet 提要(在本例中称为 Local)时遇到了类似问题。

    初始构建步骤(命令行 - 自定义脚本)

    del /F %env.APPDATA%\NuGet\NuGet.Config
    %teamcity.agent.tools.dir%\NuGet.CommandLine.DEFAULT.nupkg\tools\nuget.exe sources add -name Local -source %env.NuGetFeed%
    %teamcity.agent.tools.dir%\NuGet.CommandLine.DEFAULT.nupkg\tools\nuget.exe sources update -Name Local -User %env.BuildServiceUser% -pass %env.BuildServicePassword%
    

    正如我所说,这是一种解决方法,但如果使用模板,则无需过多维护。希望它能让您启动并运行。

    【讨论】:

    • 谢谢,实际上我花了大约两天时间才找到几乎相同的解决方法。我没有进行构建步骤,而是将代理用户更改为新的受限用户,并将源和凭据添加到该用户的 nuget.config。
    【解决方案2】:

    我知道这是一个老问题,但我最近在 TeamCity 9.1.7 中遇到了这个问题。

    在我的例子中,问题是我在Server URL 上有一个斜杠,在Administration > Global Settings 中找到。删除该斜线使身份验证正常工作。

    【讨论】:

    • 从 8 迁移到 TeamCity 10 后,我遇到了同样的问题。在 8 中,没有斜线无法构建,在 10 中,它无法使用斜线构建。
    【解决方案3】:

    对于 TeamCity 8.1.2(内部版本 29993),我通过在 TeamCity 管理面板(我有 v.2.8.2)安装 Nuget v. 2.8.0 解决了这个问题。然后,我添加了“Nuget Install”构建步骤并设置了 NuGet Feed Credentials 构建功能。 或许,如果您更新 TeamCity,它也会解决此问题。

    【讨论】:

      【解决方案4】:

      解决

      http://localhost:80/httpAuth/app/nuget/v1/FeedService.svc:“http://localhost/httpAuth/app/nuget/v1/FeedService.svc/Packages(Id='***',Version='1.0.0')”处的 V2 提要返回了意外的状态代码“401 Unauthorized”。

      我已经完成的问题:

      1. 创建本地管理员帐户

        net user tcbagent password123 /add
        net localgroup administrators tcbagent /add
        
      2. 附加“作为服务登录”权限(使用 Carbon PS 助手)

        Grant-CAPrivilege -Identity tcbagent "SeServiceLogonRight"
        
      3. 在 TeamCity 中创建帐户
      4. 使用目标环境运行cmd

        runas /user:tcbagent cmd
        
      5. 使用凭据添加nuget

        nuget sources add -name local -source http://localhost/httpAuth/app/nuget/v1/FeedService.svc -UserName tcbagent -Password password123 
        

        localhost 你需要的任何东西

      检查您的 teamcity-build.log 文件以获得如下内容:

      Starting NuGet.exe 3.5.0.1284 from C:\TeamCity\buildAgent\tools\NuGet.CommandLine.DEFAULT\tools\NuGet.exe
      ...
      Restoring NuGet package xxxx.
      ...
      Using credentials from config. UserName: tcbagent
      

      TeamCity v9.1.7、NuGet v3.5.0-beta

      我花了 2 天时间来解决它,因为我对 TeamCity 和 CI 还很陌生。 希望对您有所帮助。

      【讨论】:

        【解决方案5】:

        似乎与https://nuget.codeplex.com/workitem/4172 类似。

        您可以尝试问题描述底部的解决方法吗?

        【讨论】:

        • 这需要更改 nuget.config,我正在尝试在没有它的情况下使其正常工作。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多