指定 nuspec 文件时,dotnet pack 构建文件夹输出而不是 lib 文件夹

dotnet pack build folders output instead of lib folder when specifying nuspec file

我正在尝试向我们的 CI 进程添加一个步骤,该步骤是一个 powershell 脚本,它将在上一个步骤构建后自动打包并推送 .NET 标准 2.0 项目的 nuget 包。我使用的原始命令是:

dotnet pack $project.csproj -c $configuration -p:PackageVersion=$version

这给了我想要的确切项目输出。如这里所见: dotnet pack without nuspec specified.

但是,在我们以前的nuget包中,我们有重要的nuspec文件,dotnet pack默认不会选择它,即使它与项目文件在同一目录中,它也会生成一个默认文件。为了解决这个问题,我发现您可以指定 nuspec 文件并将命令更新为:

dotnet pack $project.csproj -c $configuration -p:PackageVersion=$version -p:NuspecFile=$project.nuspec

现在这将正确添加所需的 nuspec 文件,但现在 nupkg 中有不需要的内容,没有 lib 文件夹,这似乎是构建项目的输出。如此处所示:dotnet pack with nuspec file specified.

  1. 有没有办法从第一个命令和 纯粹通过 dotnet pack 命令在第二个命令中指定的 nuspec 文件?我试过 --no-build 和 verbose 详细日志记录以获取更多信息,但到目前为止运气不好。
  2. 是否有替代 nuspec 文件的方法可以达到相同的效果,例如在项目文件中指定更多信息并完全删除 nuspec 文件?

谢谢!

我能够通过简单地弃用对 nuspec 文件的需求来解决这个问题。所需的一切都可以在 csproj 中完成,它可以毫无问题地转换为 dotnet pack 生成的 nuspec 文件。