Description
I have a number of applications, both public and private, where for test purposes I've set them up to ingest changes from the .NET daily builds feed out of the dotnet/installer repo.
For one specific application, updating to .NET 8 RC1 daily builds is causing the application to fail to compile due to CS0757 errors for duplication partial logger method implementations. We use this pattern in many of the applications ingesting daily builds, but only this application was affected.
Through trial and error of cutting back the application to a minimal repro, I've found that this issue is caused when the application references the Microsoft.Extensions.Telemetry NuGet package (it doesn't even need to be used).
A repository that contains the subset of the application that causes the compilation error can be found at martincostello/CS0757-With-Telemetry-Repro.
Reproduction Steps
- Install version
8.0.100-rc.1.23412.1 of the .NET SDK.
- Clone https://github.com/martincostello/CS0757-With-Telemetry-Repro
- Run
dotnet build /p:IncludeTelemetry=true
Expected behavior
The application compiles.
Actual behavior
The application fails to compile due to CS0757 errors:
> dotnet build /p:IncludeTelemetry=true
MSBuild version 17.8.0-preview-23401-01+b3989dc43 for .NET
Determining projects to restore...
Restored src\MyApplication\MyApplication.csproj (in 869 ms).
src\MyApplication\Microsoft.Extensions.Logging.Generators\Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator\LoggerMessage.g.cs(15,40): error CS0757: A partial method may not have multiple implementing declarations [src\MyApplication\MyApplication.csproj]
src\MyApplication\Microsoft.Extensions.Logging.Generators\Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator\LoggerMessage.g.cs(27,40): error CS0757: A partial method may not have multiple implementing declarations [src\MyApplication\MyApplication.csproj]
src\MyApplication\Microsoft.Extensions.Logging.Generators\Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator\LoggerMessage.g.cs(39,40): error CS0757: A partial method may not have multiple implementing declarations [src\MyApplication\MyApplication.csproj]
src\MyApplication\Microsoft.Extensions.Logging.Generators\Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator\LoggerMessage.g.cs(51,40): error CS0757: A partial method may not have multiple implementing declarations [src\MyApplication\MyApplication.csproj]
src\MyApplication\Microsoft.Extensions.Logging.Generators\Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator\LoggerMessage.g.cs(63,40): error CS0757: A partial method may not have multiple implementing declarations [src\MyApplication\MyApplication.csproj]
Build FAILED.
src\MyApplication\Microsoft.Extensions.Logging.Generators\Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator\LoggerMessage.g.cs(15,40): error CS0757: A partial method may not have multiple implementing declarations [src\MyApplication\MyApplication.csproj]
src\MyApplication\Microsoft.Extensions.Logging.Generators\Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator\LoggerMessage.g.cs(27,40): error CS0757: A partial method may not have multiple implementing declarations [src\MyApplication\MyApplication.csproj]
src\MyApplication\Microsoft.Extensions.Logging.Generators\Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator\LoggerMessage.g.cs(39,40): error CS0757: A partial method may not have multiple implementing declarations [src\MyApplication\MyApplication.csproj]
src\MyApplication\Microsoft.Extensions.Logging.Generators\Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator\LoggerMessage.g.cs(51,40): error CS0757: A partial method may not have multiple implementing declarations [src\MyApplication\MyApplication.csproj]
src\MyApplication\Microsoft.Extensions.Logging.Generators\Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator\LoggerMessage.g.cs(63,40): error CS0757: A partial method may not have multiple implementing declarations [src\MyApplication\MyApplication.csproj]
0 Warning(s)
5 Error(s)
Time Elapsed 00:00:02.65
Regression?
Worked with version 8.0.100-preview.7.23376.3 of the SDK.
Known Workarounds
Do not reference Microsoft.Extensions.Telemetry.
Configuration
- .NET SDK
8.0.100-rc.1.23412.1
- Microsoft.Extensions.Telemetry
8.0.0-rc.1.23409.4
Other information
It might be that this is caused by some sort of compiler/tooling lag between the runtime, extensions sdk and/or installer repos that will resolve itself over time as dependencies flow and is a non-issue in practice, but it's been broken in this application since last week so I thought it was worth flagging.
Description
I have a number of applications, both public and private, where for test purposes I've set them up to ingest changes from the .NET daily builds feed out of the dotnet/installer repo.
For one specific application, updating to .NET 8 RC1 daily builds is causing the application to fail to compile due to CS0757 errors for duplication partial logger method implementations. We use this pattern in many of the applications ingesting daily builds, but only this application was affected.
Through trial and error of cutting back the application to a minimal repro, I've found that this issue is caused when the application references the Microsoft.Extensions.Telemetry NuGet package (it doesn't even need to be used).
A repository that contains the subset of the application that causes the compilation error can be found at martincostello/CS0757-With-Telemetry-Repro.
Reproduction Steps
8.0.100-rc.1.23412.1of the .NET SDK.dotnet build /p:IncludeTelemetry=trueExpected behavior
The application compiles.
Actual behavior
The application fails to compile due to
CS0757errors:Regression?
Worked with version
8.0.100-preview.7.23376.3of the SDK.Known Workarounds
Do not reference Microsoft.Extensions.Telemetry.
Configuration
8.0.100-rc.1.23412.18.0.0-rc.1.23409.4Other information
It might be that this is caused by some sort of compiler/tooling lag between the runtime, extensions sdk and/or installer repos that will resolve itself over time as dependencies flow and is a non-issue in practice, but it's been broken in this application since last week so I thought it was worth flagging.