【问题标题】:VSTS NuGet pack exclude test projectsVSTS NuGet 包排除测试项目
【发布时间】:2016-08-10 02:55:44
【问题描述】:

我正在使用 VSTS vNext 构建系统来构建 C# 解决方案。 您可以在下面看到 NuGet Packager 的设置。 nuspec 文件的路径设置为引用 .csproj 文件。

但这包括所有 .csproj 文件;我需要排除测试项目。忽略“Core.Test.csproj”但仍打包“Core.csproj”。

我已经尝试了 '*.csproj;-:!*test.csproj' 和其他组合,但没有成功解决这个问题!有谁知道 vNext 构建的模式匹配是如何工作的?

【问题讨论】:

    标签: azure-devops azure-pipelines-build-task azure-artifacts


    【解决方案1】:

    **\*.csproj;-:**\*test.csproj 应该这样做(不需要感叹号)。如果没有,我们可能有错误,您应该在GitHub 上提交。

    【讨论】:

    • 您是否知道可以进行多个排除?例如**/*.csproj;-:**/*.Tests.csproj;-:**/*.ConsoleApp.csproj
    • 我发现它没有:我应该在 GitHub 上将其作为问题提出吗?
    • 是的。我已经不在那个团队了,但我会把这个转发给在那个团队的人。
    • 排除模式已更改。来自文档 (docs.microsoft.com/en-us/vsts/build-release/tasks/package/…):使用文件匹配模式发布多个包。请注意,这些模式在 NuGet 任务的版本 2 中进行了更新;如果您有一个包含 -: 的模式,请使用 !而是。
    【解决方案2】:

    VSTS 和 TFS 2018 中 NuGet task 的最新版本 (2.x) 使用不同的模式来排除包。现在你使用! 而不是-:

    所以**\*.csproj;-:**\*.Test.csproj 更改为**\*.csproj;!**\*.Test.csproj

    完整的模式匹配文档可以在here找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2019-12-06
      相关资源
      最近更新 更多