【问题标题】:nuget command to IncludeReferencedProjects in azure devops在 azure devops 中包含引用项目的 nuget 命令
【发布时间】:2019-04-02 19:30:10
【问题描述】:

在 Azure devops 中,我想发出一个传递选项 IncludeReferencedProjects 的 nuget pack 命令。我的仓库在 TFVC 中,所以我不相信我可以使用 azure-pipelines.yml。我相信我必须通过视觉设计师来做到这一点。我没有看到使用 pack 命令类型将其他参数传递给 nuget 的选项。这让我觉得我必须为 nuget 使用自定义命令类型。当我使用自定义命令类型时,我可以指定 -IncludeReferencedProjects 但我似乎无法指定 **\*.csproj 作为要打包的项目。如果我这样做,命令将失败:

[command]C:\hostedtoolcache\windows\NuGet\4.1.0\x64\nuget.exe pack **\*.csproj -IncludeReferencedProjects -Symbols -Verbosity Detailed -NonInteractive
System.IO.IOException: The filename, directory name, or volume label syntax is incorrect.

如何使用可视化设计器将所有带有 IncludeReferencedProjects 标志的 csproj 输出打包?这是我在设计师中的图片:

【问题讨论】:

    标签: azure azure-devops nuget


    【解决方案1】:

    如何使用可视化设计器使用 IncludeReferencedProjects 标志打包所有 csproj 输出?

    恐怕您无法使用 IncludeReferencedProjects 标志打包 all csproj 输出。

    那是因为pack command (NuGet CLI) 不支持通配符

    当您使用带有通配符的 nuget pack 命令行时,您将始终收到错误 Unknown command: '**\*.csproj'。 (这个错误在本地也存在。)

    要解决此问题,我们可以添加多个 nuget pack 任务来打包这些项目。

    希望这会有所帮助。

    【讨论】:

    • 好的,当我使用命令类型为“pack”的 nuget 任务时,听起来 devops 视觉设计师正在为我做一些魔法,因为我可以指定 **\*.csproj它有效。它只是没有给我传递 IncludeReferencedProjects 的选项。当我将 nuget 任务切换为“自定义”命令类型时,我失去了所有的 devops 魔法,这就是通配符不起作用的原因。
    • 这真的很不方便。包应该支持额外的选项或自定义应该支持带通配符的路径
    【解决方案2】:

    对我来说,传递 IncludeReferencedProjects=true 有效。

    - task: DotNetCoreCLI@2
      displayName: Pack Core.Shared
      inputs:
        command: 'pack'
        packagesToPack: '**/*.csproj'
        versioningScheme: 'byPrereleaseNumber'
        majorVersion: '1'
        minorVersion: '0'
        patchVersion: '0'
        buildProperties: 'IncludeReferencedProjects=true'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-22
      • 1970-01-01
      • 1970-01-01
      • 2021-08-18
      相关资源
      最近更新 更多