【问题标题】:DotNetCLI@2 pack seems to be ignoring configuration inputsDotNetCLI@2 包似乎忽略了配置输入
【发布时间】:2020-03-29 00:23:29
【问题描述】:

下面的 YAML sn-p 似乎没有按预期工作。

我在使用 windows-latest 映像运行的管道中对其进行了配置,它尝试恢复存储库中的所有项目,而不是只查看解决方案文件。

另外,它似乎完全忽略了 --no-restore 标志

- task: DotNetCoreCLI@2
  displayName: Package to Staging directory
  inputs:
    command: pack
    configuration: $(BUILD_CONFIGURATION)
    projects: 'support-libs.sln'
    packDirectory: $(Build.ArtifactStagingDirectory)
    nugetConfigPath: 'sf-solution/nuget.config'
    arguments: '--no-restore'
    verbosityRestore: Minimal

出现在步骤日志上的命令是:

“C:\Program Files\dotnet\dotnet.exe”包 d:\a\1\s\sf-solution\SampleProject\SampleProject.csproj --output d:\a\1\a /p:Configuration=Debug --verbosity 详细

上面的项目甚至没有包含在sn-p配置的support-libs SLN文件中。

【问题讨论】:

    标签: azure-devops azure-pipelines nuget-package-restore dotnet-cli


    【解决方案1】:

    上面的项目甚至没有包含在sn-p配置的support-libs SLN文件中

    不确定为什么 DotNetCLI 任务打包项目,该项目不包含在 support-libs SLN 中。由于您没有在问题中分享您的项目文件结构和构建日志,因此我无法直接向您提供此问题的原因。

    但作为解决方法,您可以指定特定的项目文件而不是解决方案文件。此外,您还可以通过经典编辑器查看此任务:

    它说明 要打包的 csproj 或 nuspec 文件的路径

    对于忽略配置输入问题,有一个选项Do Not build,因此,您可以将此参数添加到您的打包任务中,而不是参数--no-restore

    - task: DotNetCoreCLI@2
      displayName: 'dotnet pack'
      inputs:
        command: pack
        packagesToPack: YourProjectPath&Name.csproj
        nobuild: true
    

    注意:在使用此打包任务之前添加一个 DotNet 构建任务。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      我终于能够做我想做的事并将所有库打包到解决方案中,但是我不得不使用自定义命令而不是打包命令:

      - task: DotNetCoreCLI@2
        displayName: Package to Staging directory
        inputs:
          command: custom
          custom: 'pack'
          arguments: 'support-libs.sln -c=$(BUILD_CONFIGURATION) -o $(Build.ArtifactStagingDirectory)'
          verbosityRestore: Minimal
          verbosityPack: Minimal
          feedsToUse: select
          vstsFeed: personalnugetfeed
          nuGetFeedType: internal
          includeNuGetOrg: true
      

      我也遇到了 Nuget 配置中的内部提要的授权问题,并且即使通过自定义命令链接到该文件也有同样的问题。 明确说明应该从哪个提要中完美地进行还原,并且我能够检索所有依赖项,从而无需使用 --no-restore 标志。

      【讨论】:

      • 非常感谢您在这里分享您的解决方案,您可以接受您的解决方案作为答案,这样可以帮助遇到相同问题的其他社区成员轻松找到答案。再次感谢您的分享:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 2013-09-12
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      相关资源
      最近更新 更多