PackageReferences 必需的 Nuspec 依赖项

Nuspec dependencies necessary with PackageReferences

想象一下以下情况:

项目 A 具有一些 NuGet 依赖项(即项目 Z、项目 Y 和项目 X)。它使用 PackageReferences。

现在我想使用 .nuspec 文件将项目 A 打包为 .nupkg。在 .nuspec 文件中,您可以声明其他 NuGet 依赖项,它们将在安装时自动解析。

但这有必要吗?我以为 PackageReferences 已经解决了它们。

当您在项目中使用 PackageReference 项时,您不再需要 .nuspec 文件来打包项目。您应该可以用 dotnet pack -c Releasemsbuild.exe -t:Pack -p:Configuration=Release 打包它。 (根据项目类型,您可能需要为非基于 SDK 的 .NET Framework 项目安装 NuGet.Build.Tasks.Pack。.NET Standard、Core、.NET 5+ 项目不需要此)

可以 仍然使用 .nuspec 文件,通过在 csproj 中指定 NuspecFile 属性 来指示 pack 任务使用它。但是,它将覆盖 NuGet 自动生成的所有设置 - 这是获得对 .nuspec.

的完全控制权衡。

如果您使用 PackageReference 打包项目,您可以查看生成的 .nuspec 文件,例如obj\Release\FooLib.1.0.0.nuspec.