PackageReferences 必需的 Nuspec 依赖项
Nuspec dependencies necessary with PackageReferences
想象一下以下情况:
项目 A 具有一些 NuGet 依赖项(即项目 Z、项目 Y 和项目 X)。它使用 PackageReferences。
现在我想使用 .nuspec 文件将项目 A 打包为 .nupkg。在 .nuspec 文件中,您可以声明其他 NuGet 依赖项,它们将在安装时自动解析。
但这有必要吗?我以为 PackageReferences 已经解决了它们。
当您在项目中使用 PackageReference
项时,您不再需要 .nuspec
文件来打包项目。您应该可以用 dotnet pack -c Release
或 msbuild.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
.
想象一下以下情况:
项目 A 具有一些 NuGet 依赖项(即项目 Z、项目 Y 和项目 X)。它使用 PackageReferences。
现在我想使用 .nuspec 文件将项目 A 打包为 .nupkg。在 .nuspec 文件中,您可以声明其他 NuGet 依赖项,它们将在安装时自动解析。
但这有必要吗?我以为 PackageReferences 已经解决了它们。
当您在项目中使用 PackageReference
项时,您不再需要 .nuspec
文件来打包项目。您应该可以用 dotnet pack -c Release
或 msbuild.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
.