DotNetCLI@2 pack 似乎忽略了配置输入

DotNetCLI@2 pack seems to be ignoring configuration inputs

下面的 YAML 片段似乎没有按预期工作。

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

此外,它似乎完全忽略了 --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" pack d:\a\s\sf-solution\SampleProject\SampleProject.csproj --output d:\a\a /p:Configuration=Debug --verbosity Detailed

上述项目甚至没有包含在代码段配置的 support-libs SLN 文件中。

The above project is not even included in the support-libs SLN file the snippet has configured

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

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

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

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

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

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

希望对您有所帮助。

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

- 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 配置中的内部提要的授权问题,并且链接到该文件,即使是来自自定义命令,也有同样的问题。 明确说明应该从哪个 feed 进行恢复工作完美,我能够检索所有依赖项,无需使用 --no-restore 标志。