繁体   English   中英

Azure DevOps - Nuget 包包测试项目

[英]Azure DevOps - Nuget pack packages test projects

我有一个包含 .NET Core 3.1 项目的解决方案,其中包括测试项目 (xUnit)。 我在 Azure DevOps 中创建了一个管道,用于构建 Nuget 包。 出于某种原因,它也为测试项目创建了包,即使它们有

<IsPackable>false</IsPackable>

如何从 Nuget 打包中排除项目?

该管道使用 Windows 2019 代理、.NET Core 3.1、最新的 Nuget、NuGet 包和 NuGet 推送任务。

如果您通过 Gui 添加 NuGet 任务,它将为您的问题提供解决方案:

**\\*.csproj;!**\\*.Tests.csproj

您的 Nuget 命令应如下所示:

- task: NuGetCommand@2
  displayName: 'NuGet pack'
  inputs:
    command: 'pack'
    packagesToPack: '**\*.csproj;!**\*.Tests.csproj'
    versioningScheme: #yourversioningscheme

来自 AzDO 的屏幕截图

如果您正在构建的解决方案包含您不希望打包的项目,那么您必须手动引用您希望打包的项目。

**\\Foo.csproj;

正如@jKlaus 建议的**/*.csproj ,您应该使用多个打包任务 - 每个项目 1 个,而不是使用带有**/*.csproj模式的单个打包任务。 例如,对于特定项目,您将执行以下步骤:

steps:
- task: NuGetCommand@2
  displayName: 'Pack ProjectName'
  inputs:
    command: pack
    packagesToPack: ProjectName/ProjectName.csproj
    versioningScheme: byPrereleaseNumber

并且会有其他项目用于不同的项目。

您可以专门针对我使用过的每个步骤打包项目。 我认为 IsPackable 只受 dotnet 的尊重,而不是 nuget。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM