-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
Labels
Description
Describe the bug
If a referenced project has an ampersand in its path, it ends up duplicated in the ProjectReference item group.
To Reproduce
Test project:
transitiveProjectReference-d80d127.zip
Run repro.sh, it will build a console project twice, once with a normal project reference, the second time with a project reference that has an ampersand in its path:
$ ./repro.sh
+ dotnet build /bl:working.binlog consoleapp/consoleapp.csproj /p:Mode=working
Restore complete (0.3s)
baselib succeeded (1.0s) → baselib/bin/Debug/net9.0/baselib.dll
consoleapp succeeded with 1 warning(s) (1.0s) → consoleapp/bin/Debug/net9.0/consoleapp.dll
/Users/rolf/test/dotnet/transitiveProjectReference/consoleapp/consoleapp.csproj(17,5): warning : ../baselib/baselib.csproj
Build succeeded with 1 warning(s) in 2.6s
+ dotnet build /bl:failing.binlog consoleapp/consoleapp.csproj /p:Mode=failing
Restore complete (0.3s)
baselib & more succeeded (0.9s) → baselib2/bin/Debug/net9.0/baselib & more.dll
consoleapp failed with 1 error(s) and 1 warning(s) (0.9s) → consoleapp/bin/Debug/net9.0/consoleapp.dll
/Users/rolf/test/dotnet/transitiveProjectReference/consoleapp/consoleapp.csproj(17,5): warning : ../baselib2/baselib & more.csproj;../baselib2/baselib & more.csproj
/Users/rolf/test/dotnet/transitiveProjectReference/consoleapp/consoleapp.csproj(18,5): error : More than one project reference!
Build failed with 1 error(s) and 1 warning(s) in 2.3s
The problem seems to be in the ResolvePackageAssets test, in the failing case, it seems to think the console project doesn't have an actual ProjectReference to the referenced project, so it re-adds it (thus duplicating it) as if it were a transitive reference:
This does not happen in the working case:
Further technical details
$ dotnet --info
.NET SDK:
Version: 9.0.300
Commit: 15606fe0a8
Workload version: 9.0.301.1
MSBuild version: 17.14.5+edd3bbf37
Runtime Environment:
OS Name: Mac OS X
OS Version: 15.5
OS Platform: Darwin
RID: osx-arm64
Base Path: /usr/local/share/dotnet/sdk/9.0.300/
.NET workloads installed:
[macos]
Installation Source: SDK 9.0.300
Manifest Version: 15.5.9199/9.0.100
Manifest Path: /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.macos/15.5.9199/WorkloadManifest.json
Install Type: FileBased
[ios]
Installation Source: SDK 9.0.300
Manifest Version: 18.5.9199/9.0.100
Manifest Path: /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.ios/18.5.9199/WorkloadManifest.json
Install Type: FileBased
[maccatalyst]
Installation Source: SDK 9.0.300
Manifest Version: 18.5.9199/9.0.100
Manifest Path: /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.maccatalyst/18.5.9199/WorkloadManifest.json
Install Type: FileBased
Configured to use workload sets when installing new manifests.
Host:
Version: 9.0.5
Architecture: arm64
Commit: e36e4d1a8f
.NET SDKs installed:
6.0.425 [/usr/local/share/dotnet/sdk]
7.0.410 [/usr/local/share/dotnet/sdk]
8.0.304 [/usr/local/share/dotnet/sdk]
8.0.402 [/usr/local/share/dotnet/sdk]
9.0.100 [/usr/local/share/dotnet/sdk]
9.0.102 [/usr/local/share/dotnet/sdk]
9.0.103 [/usr/local/share/dotnet/sdk]
9.0.106 [/usr/local/share/dotnet/sdk]
9.0.203 [/usr/local/share/dotnet/sdk]
9.0.300 [/usr/local/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.33 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.20 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.8 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.0-rc.2.24474.3 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.4 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.33 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.36 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.20 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.8 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
Not set
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
This is on macOS, command line.