dotnet pack 命令不会为测试和规范项目生成 .nuget 包?

aej*_*eje 8 .net nuget-package

我们有一个包含多个项目的解决方案,其中包括带有单元和规范测试的项目。当我们在解决方案上运行 dotnet pack 命令时,不会为单元和规范测试项目生成包。这是一件好事,它排除了测试项目。只是想了解 dotnet pack 命令如何不将项目排除在打包之外。

在实验中,我注意到当我在任何项目上添加对 xunit 和 xnit.runner.visualstudio 的项目依赖项时,dotnet pack 不会为该项目生成包。

dotnet pack C:\Projects\SysScore_Integration\SysScore\SysScore.sln --output C:\Projects\LocalNuGet\ /p:PackageVersion=1.0.1.8

Tom*_*m W 18

添加属性<IsPackable>true</IsPackable>到 .csproj 文件可以修复此问题。

显然,只要引用 xUnit 就可以将项目视为“测试项目”——即使该项目不包含任何测试。这会干扰这样的情况:例如,正在编写一个使用或扩展测试框架属性的可重用测试框架。我希望dotnet pack至少打印一条警告,解释为什么该命令被忽略,但无论谁实现这一点显然不同意。

  • @JonSkeet 至少打印一条消息,说明为什么该命令被忽略?我正在创建一个测试框架,旨在供众多项目使用。为了应用 xUnit 属性,需要引用 xUnit 包。这是它是“测试项目”的唯一意义。它不包含任何测试方法。 (4认同)
  • (对于稍后阅读这些评论的人,请注意我的第一条评论是参考修订版 1 的第二段。) (2认同)