-
Notifications
You must be signed in to change notification settings - Fork 752
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Logging Source Generator emits CS0757 errors when referencing Microsoft.Extensions.Telemetry #4286
Comments
Tagging subscribers to this area: @dotnet/area-extensions-logging Issue DetailsDescriptionI 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
Expected behaviorThe application compiles. Actual behaviorThe application fails to compile due to > 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 Known WorkaroundsDo not reference Microsoft.Extensions.Telemetry. Configuration
Other informationIt 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.
|
Hey, yeah this one should be fixed but it would be good to validate with the latest version of the package to make sure everything works as expected. |
@joperezr If you let me know what version of the package this should be fixed from, I can check it tomorrow when the update automation for our app runs again. |
Thanks a bunch for the help @martincostello! This should have been fixed with: #4238, but after some testing I can see that this is indeed still broken for web projects (since the package is correctly removing the Logging.Abstractions analyzer package, but the web project targeting pack also includes this analyzer so it has to be removed from there as well). I'll put up a fix that addresses this and let you know when we have a package version for you to test |
Thanks for the patience @martincostello. PR is now merged so version |
Any chance of this fix being backported to RC1? I can manually check it against RC2 today, but my automation is targeting RC1 and if the fix doesn't land until RC2 I'll have to comment-out the NuGet usage in the app until after RC1 ships and I switch to target RC2 dailies. |
Yeah, I think it should get backported. I'll send out the PR for that in a bit. |
@joperezr Can we close this issue? |
Yes, let's go ahead and close it. @martincostello if you can still repro with latest package, please feel free to re-open it. |
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.1
of the .NET SDK.dotnet build /p:IncludeTelemetry=true
Expected behavior
The application compiles.
Actual behavior
The application fails to compile due to
CS0757
errors:Regression?
Worked with version
8.0.100-preview.7.23376.3
of the SDK.Known Workarounds
Do not reference Microsoft.Extensions.Telemetry.
Configuration
8.0.100-rc.1.23412.1
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.
The text was updated successfully, but these errors were encountered: