Condividi tramite


Errore NuGet NU1011

Gli elementi PackageVersion seguenti non possono specificare una versione mobile: PackageName.

Problema

Un progetto è configurato per l'uso di Gestione pacchetti centrali NuGet e viene definito un <PackageVersion /> elemento che specifica un valore di versione mobile per l'attributo Version :

<ItemGroup>
  <PackageVersion Include="PackageName" Version="1.*" />
</ItemGroup>

Per impostazione predefinita, <PackageVersion /> gli elementi non possono specificare versioni mobili. La gestione pacchetti centrale di NuGet offre agli utenti la possibilità di gestire le versioni dei pacchetti in un'unica posizione, nonché ripristini deterministici e sicuri. L'uso di versioni mobili introduce la possibilità che un pacchetto non valido venga introdotto nella compilazione dopo che è stato eseguito il push in un feed. Ciò può causare una situazione in cui non sono state apportate modifiche nel repository, ma improvvisamente qualcosa è interrotto a causa di un problema in un nuovo pacchetto e non è possibile tornare in uno stato corretto senza rimuovere la versione mobile o eseguire il push di una versione più recente del pacchetto che è stato risolto. L'uso di versioni non mobili significa che ogni aggiornamento a un pacchetto è supportato da un commit nel repository, rendendo più semplice determinare quale modifica ha causato l'interruzione e consente di ripristinare un commit per tornare a uno stato corretto.

Inoltre, quando si usa la funzionalità di aggiunta transitiva di Central Package Management, l'uso di una versione mobile come override potrebbe eseguire ripristini di progetti diversi finisce con versioni diverse per il pacchetto che ciò che dovrebbe essere aggiunto, quindi contro la promessa di usare la versione definita centralmente.

NuGet consiglia di usare l'automazione come Dependabot per mantenere le versioni dei pacchetti up-to-date, che offre un modo semplificato per aggiornare le versioni dei pacchetti durante l'integrazione nel flusso di lavoro per sviluppatori esistente di una richiesta pull, la convalida automatica della compilazione e il test di tutti supportati da un commit nel repository.

Soluzione

<ItemGroup>
  <PackageVersion Include="PackageName" Version="1.0.0" />
</ItemGroup>
  • Se ciò non è possibile o si desidera usare versioni mobili con Gestione pacchetti centrali, è possibile farlo impostando una proprietà MSBuild:
<PropertyGroup>
  <CentralPackageFloatingVersionsEnabled>true</CentralPackageFloatingVersionsEnabled>
</PropertyGroup>