imagine the following situation:
Project A has some NuGet dependencies (ie Project Z, Project Y and Project X). It uses PackageReferences.
Now I want to pack Project A as a .nupkg using a .nuspec file. In a .nuspec file you can declare other NuGet dependencies and they will automatically resolved upon installation.
But is that necessary? I thought the PackageReferences would already resolve them.
When you use PackageReference
items in your project, you no longer need a .nuspec
file to pack a project. You should be able to pack it with dotnet pack -c Release
or msbuild.exe -t:Pack -p:Configuration=Release
. (Depending on the project type, you may need to install the NuGet.Build.Tasks.Pack
for non-SDK-based .NET Framework projects. .NET Standard, Core, .NET 5+ projects should not need this)
You can still use a .nuspec file though, by specifying a NuspecFile
property inside the csproj to instruct the pack task to use it. However, it will override all the settings that NuGet would autogenerate - that's the tradeoff for getting complete control over the .nuspec
.
If you pack a project using PackageReference
you can have a look at the generated .nuspec
file in e.g. obj\Release\FooLib.1.0.0.nuspec
.