Paket
Paket copied to clipboard
Paket 7 wrongly patches dependencies versions in NuSpec for multi target projects
Description
I want to build NuGet package with different fixed versions for different target frameworks. It worked in Paket 6(.2.1) via dedicated dependency groups but stopped with version 7(0.2).
Repro steps
- Create paket.dependencies file with 2 groups:
group Net5
framework: net5.0
nuget FSharp.Core ~> 5
...
group Net6
framework: net6.0
nuget FSharp.Core ~> 6
...
- Create paket.references for project targeting both net5.0 and net6.0:
group Net5
FSharp.Core
group Net6
FSharp.Core
- Create package with dotnet pack:
Expected behavior
NuSpec:
<dependencies>
<group targetFramework="net5.0">
<dependency id="FSharp.Core" version="5.0.2" exclude="Build,Analyzers" />
</group>
<group targetFramework="net6.0">
<dependency id="FSharp.Core" version="6.0.3" exclude="Build,Analyzers" />
</group>
</dependencies>
Actual behavior
NuSpec with same FSharpCore version:
<dependencies>
<group targetFramework="net5.0">
<dependency id="FSharp.Core" version="6.0.3" exclude="Build,Analyzers" />
</group>
<group targetFramework="net6.0">
<dependency id="FSharp.Core" version="6.0.3" exclude="Build,Analyzers" />
</group>
</dependencies>
Paket outputs some info:
...FSharp.Core is a direct dependency and requires version patching...
Known workarounds
Downgrade to Paket 6.2.1