[英]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
如果您正在构建的解决方案包含您不希望打包的项目,那么您必须手动引用您希望打包的项目。
**\\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.