VSTS NuGet打包排除测试项目。

9

我正在使用VSTS vNext构建系统来构建一个C#解决方案。 下面是NuGet打包程序的设置。 nuspec文件的路径设置为引用.csproj文件。

enter image description here

然而,这包括所有的.csproj文件;我需要排除测试项目。忽略“Core.Test.csproj”,但仍然打包“Core.csproj”。
我尝试过'*.csproj;-:!*test.csproj'和其他组合,但一直没有找到解决方法!有人知道vNext构建的模式匹配如何工作吗?
2个回答

14

**\*.csproj;-:**\*test.csproj就可以了(不需要感叹号)。如果不能运行,那可能是个bug,请在GitHub上报告。


你是否知道可以进行多个排除操作?例如:**/*.csproj;-:**/*.Tests.csproj;-:**/*.ConsoleApp.csproj - chris31389
我发现它不起作用,我应该在GitHub上提出问题吗? - chris31389
是的,我不在那个团队了,但我会转发给正在参与的人。 - Matt Cooper
4
排除模式已更改。从文档(https://learn.microsoft.com/en-us/vsts/build-release/tasks/package/nuget#pack-nuget-packages)中了解:使用文件匹配模式发布多个包。请注意,在 NuGet 任务的第二个版本中更新了这些模式;如果您的模式包含-:请改用! - Alex Mullans

11

微软团队基金服务(VSTS)和TFS 2018中最新版本(2.x)的NuGet任务使用了一种不同的排除包的模式。现在您需要使用!而不是-:

因此,**\*.csproj;-:**\*.Test.csproj变成了**\*.csproj;!**\*.Test.csproj

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接