Project configuration mappings are deleted when its GUID collides with another project's derived default ID
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 72/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- csharp
- Lĩnh vực
- build-system, devtools
Hướng nghiên cứu
Bắt đầu bằng cách chạy bản tái hiện được cung cấp với repro.sln và lệnh dotnet sln add C, sau đó kiểm tra cách các mục dự án A, B và C cùng các ánh xạ cấu hình được biểu diễn. Truy vết đường dẫn lưu trạng thái của solution được dotnet sln add sử dụng. Được coi là hoàn tất khi việc thêm C không còn xóa 12 ánh xạ cấu hình của A và bản tái hiện giữ lại đủ 13 lần xuất hiện GUID của A.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- C#
- Star
- 213
- Fork
- 14
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của microsoft/vs-solutionpersistence
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
microsoft/vs-solutionpersistence#73 · 2 bình luận ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
-
Name validation is stricter than VS and MSBuildCó thể làm lại được @richardstanton đã nhận 137 ngày trước và không có pull request nào đang mở. Đang mở
microsoft/vs-solutionpersistence#151 · 1 người được giao ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
microsoft/vs-solutionpersistence#147 · 4 reaction ·
Tất cả issue của microsoft/vs-solutionpersistence
Issue tương tự
-
bug priority: P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Parameterless constructor is not a must-provided by user when a struct has a field initializerĐang mở:watch: Not Triaged dotnet-csharp/svc fundamentals/subsvc
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Wrong values of Kernel32.FileShare.Delete and Kernel32.FileAttributes.PosixSemanticsCó thể đã có người làm @ElectLive đã nhận hôm nay. Đang mởbug good first issue help wanted
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 83/100
ForNeVeR/TruePath#241 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
files-community/Files#19047 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày