fsprojects / Paket

A dependency manager for .NET with support for NuGet packages and Git repositories.
https://fsprojects.github.io/Paket/
MIT License
1.99k stars 520 forks source link

Dependency wrongly parsed #4221

Open mdepa opened 11 months ago

mdepa commented 11 months ago

Description

Building a NET Core project, the build fails on .nuspec creation because wrong dependency version.

Repro steps

Please provide the steps required to reproduce the problem

  1. I specify dependencies with range AND prerelease

    storage: none source https://TFSFeed/nuget/v3/index.json source https://ArtifactoryFeed/artifactory/api/nuget/nuget source https://api.nuget.org/v3/index.json

    nuget Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions 7.0.5 nuget Microsoft.Extensions.Hosting.Abstractions 6.0.0 nuget MYProject.Observability.Aspects.Fody 3.0.1 nuget MyProject.Platform.Observability <= 3.2.0 prerelease

  2. I perform: dotnet paket update dotnet pack

Command fails:

C:\Users\mauro.de_pascale\MyRepo\MyProject.paket\Paket.Restore.targets(371,5): error : An error occured while trying to parse the value '' of property 'dependencies' in the manifest file. [C:\Users\mauro.de_pascale\MyRepo\MyProject\MySubProject\MySubProject.csproj] C:\Users\mauro.de_pascale\MyRepo\MyProject\MySubProject.paket\Paket.Restore.targets(371,5): error : '[3.2.0-stable.beta.115706,3.2.0-prerelease]' is not a valid version string. [C:\Users\mauro.de_pascale\MyRepo\MyProject\MySubProject\MySubProject.csproj]

Looking at the generated nuspec,effectively I see wrong dependencies as the prerelease parameters was took as part of the version:

<?xml version="1.0" encoding="utf-8"?>

MySubProject 3.2.0 Copyright 2023

If possible then please create a git repository with a repro sample or attach a zip to the issue.

I can't share company's sources, I made an attempt to recreate it but I was unable to.

Expected behavior

Generated Nuspec shall be correct so the build can succeed producing the required final nuget package.

Actual behavior

dotnet pack command fails

Known workarounds

I Can't figure out any