Ecco il nostro problema: abbiamo diverse soluzioni con più progetti che utilizzano i nostri pacchetti di nuget. Stiamo seguendo GitFlow, ma non SemVer. Ogni volta che sviluppiamo funzionalità più grandi o epiche vogliamo mantenere il codice aggiornato con il nostro ramo di sviluppo (che può avere alcune altre funzionalità o correzioni di bug in tempo per lo sviluppo di un'epica citata), quindi vogliamo unirlo regolarmente. Il problema è che in ogni unione, se ci sono stati cambiamenti con i nostri pacchetti nuget, abbiamo decine di conflitti di unione in tutti i file packages.config nei nostri progetti. In questo modo, unire richiede troppo tempo, soprattutto perché dopo l'unione dobbiamo aggiornare manualmente le versioni di nuget e installarle nei nostri progetti. Quindi ogni volta che vogliamo unire qualcosa dobbiamo riprodurre questi passaggi:
- Unisci ramo
- Risolvi tutti i conflitti di versione
- Spingi pacchetti di nuget aggiornati
- Installa pacchetti nuget aggiornati
Ho svolto alcune ricerche, ma non sono ancora sicuro di quale sia la soluzione migliore per semplificare questo processo. Ok, possiamo usare PackageReference o Paket con versioni flottanti combinate con GitVersion, che automatizzerebbe i passaggi 3 e 4 per il nostro ramo di sviluppo, ma permangono problemi di fusione e conflitti, poiché il nostro ramo di sviluppo utilizza versioni di rilascio (XXX) e altri rami versioni prerelease (con tag -branchName). Quindi con ogni aggiornamento ci saranno ancora dei conflitti.
Quindi la mia domanda è: come affrontare al meglio quella situazione? C'è un modo per risolverlo usando i nugets o forse possiamo condividere il nostro codice in qualche altro modo? I progetti condivisi non risolveranno i nostri problemi, poiché le nostre librerie sono piuttosto grandi e non vogliamo includerle nelle nostre soluzioni.