teamcity 和 dotnet pack 的最佳实践

Best practices for teamcity and dotnet pack

我有一个包含大量项目的 .sln。其中一些是netstandard,一些是net framework,一些是单元测试(也有核心和框架之间的混合和匹配)。

我正在尝试找出让 Teamcity 了解哪些 csproj 应该打包,哪些不应该打包的最佳方式。现在我们只在解决方案级别使用 dotnet pack。这导致打包 XXX.Tests — 我不想要那个。

我们的构建工程师建议传递要从 Teamcity 打包的项目列表,并将其存储为 Teamcity 配置的模式。我不喜欢那样,并希望将此信息存储在源代码中。

这方面的最佳做法是什么?

您可以使用 .csproj 的 IsPackable 属性。来自docsIsPackable是:

A Boolean value that specifies whether the project can be packed. The default value is true.

因此,只需将以下内容添加到您的 .csproj 文件即可:

<PropertyGroup>
    <IsPackable>false</IsPackable>
</PropertyGroup>

您不必将它放在它的 自己的 PropertyGroup 元素中 - 如果您愿意,您可以简单地将它添加到现有元素中。