Project configuration mappings are deleted when its GUID collides with another project's derived default ID
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- csharp
- Ambito
- build-system, devtools
Direzione di ricerca
Inizia eseguendo la riproduzione fornita con repro.sln e il comando dotnet sln add C, quindi esamina come sono rappresentate le voci dei progetti A, B e C e le corrispondenze delle configurazioni. Segui il percorso di persistenza della soluzione utilizzato da dotnet sln add. Il lavoro è completato quando l'aggiunta di C non rimuove più le 12 corrispondenze delle configurazioni di A e la riproduzione conserva tutte le 13 occorrenze del GUID di A.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I was trying to run dotnet sln add XXX but it kept removing some unrelated project's configuration mappings.
Eventually, I realized it was a project that had been renamed but kept the same GUID, and another project had been added afterwards with the same original name. Claude told me this was right repo to file this, please transfer if not.
mkdir /tmp/repro && cd /tmp/repro
dotnet new sln -n repro --format sln
dotnet new classlib -o A
dotnet new classlib -o B
dotnet new classlib -o C
dotnet sln repro.sln add A B
# Give A the ID that the library deterministically derives for B's path:
# {A0D7AA22-6627-6F78-C192-AD4CA0D6A2C6} == SHA256("B/B.csproj")[0..16]
# (I guess this was what VS did when adding the project to the sln, dotnet sln add seems to use a random GUID.)
OLD=$(grep '= "A",' repro.sln | grep -oP '(?<=csproj", "\{)[0-9A-F-]+')
sed -i "s/$OLD/A0D7AA22-6627-6F78-C192-AD4CA0D6A2C6/g" repro.sln
grep -c A0D7AA22 repro.sln # 13 (1 project line + 12 config lines)
dotnet sln repro.sln add C # exit 0, no warning
grep -c A0D7AA22 repro.sln # 1 <-- A's 12 config lines silently deleted
- Lingua principale
- C#
- Stelle
- 213
- Fork
- 14
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/vs-solutionpersistence
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
microsoft/vs-solutionpersistence#73 · 2 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
-
Name validation is stricter than VS and MSBuildForse di nuovo libera @richardstanton l’ha presa 125 giorni fa e non c’è nessuna pull request aperta. Aperta
microsoft/vs-solutionpersistence#151 · 1 assegnatario ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
microsoft/vs-solutionpersistence#147 · 4 reazioni ·
Tutte le issue di microsoft/vs-solutionpersistence
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
I maintainer di solito rispondono entro 1 giorno
-
:watch: Not Triaged aspnet-core/svc fundamentals/subsvc Source - Docs.ms
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
dotnet/AspNetCore.Docs#37785 ·
I maintainer di solito rispondono entro 1 giorno
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
Azure/azure-sdk-tools#17204 ·
I maintainer di solito rispondono entro 1 giorno
-
Проблема с Dotnet RUApertaarea-tutorials needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
dotnet/website-feedback#1779 ·