I have an application with several projects. To refactor the way we handle logging in our application, I created a logging project with a specific provider using the ILoggerProvider interface. I also implemented the ILogger interface.
To add specific logging methods, I used the following implementation:
namespace Logger
{
    public static partial class LogBasicExtensions
    {
        [LoggerMessage(
        EventId = 0,
        Level = LogLevel.Error,
        Message = "Log basic exception")]
        public static partial void LogException(this ILogger logger, Exception exception);
    }
}
Now, to maintain a clean pattern, I wanted each project in the solution to declare the logging methods they would be using. For example, in another project:
namespace AnotherProject
{
    public static partial class ClientLogExtension
    {
        [LoggerMessage(
        EventId = 1,
        Level = LogLevel.Information,
        Message = "Application Started")]
        public static partial void ApplicationStarted(this ILogger logger);
        [LoggerMessage(
        EventId = 2,
        Level = LogLevel.Information,
        Message = "Code {coderead} reception from reader {readernumber}")]
        public static partial void CodeReception(this ILogger logger, string coderead, uint readernumber);
    }
}
However, when trying to compile the project, I encountered the following errors:
CS0757: A partial method may not have multiple implementing declarations. CS0102: The type 'type name' already contains a definition for 'identifier'
Here is the code generated by Microsoft.Extensions.Logging.Generators :
 partial class ClientLogExtension
    {
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Extensions.Logging.Generators", "7.0.8.27404")]
        private static readonly global::System.Action<global::Microsoft.Extensions.Logging.ILogger, global::System.Exception?> __ApplicationStartedCallback =
            global::Microsoft.Extensions.Logging.LoggerMessage.Define(global::Microsoft.Extensions.Logging.LogLevel.Information, new global::Microsoft.Extensions.Logging.EventId(1, nameof(ApplicationStarted)), "Application Started", new global::Microsoft.Extensions.Logging.LogDefineOptions() { SkipEnabledCheck = true }); 
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Extensions.Logging.Generators", "7.0.8.27404")]
        public static partial void ApplicationStarted(this global::Microsoft.Extensions.Logging.ILogger logger)
        {
            if (logger.IsEnabled(global::Microsoft.Extensions.Logging.LogLevel.Information))
            {
                __ApplicationStartedCallback(logger, null);
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Extensions.Logging.Generators", "7.0.8.27404")]
        private static readonly global::System.Action<global::Microsoft.Extensions.Logging.ILogger, global::System.String, global::System.UInt32, global::System.Exception?> __CodeReceptionCallback =
            global::Microsoft.Extensions.Logging.LoggerMessage.Define<global::System.String, global::System.UInt32>(global::Microsoft.Extensions.Logging.LogLevel.Information, new global::Microsoft.Extensions.Logging.EventId(2, nameof(CodeReception)), "Code {coderead} reception from reader {readernumber}", new global::Microsoft.Extensions.Logging.LogDefineOptions() { SkipEnabledCheck = true }); 
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Extensions.Logging.Generators", "7.0.8.27404")]
        public static partial void CodeReception(this global::Microsoft.Extensions.Logging.ILogger logger, global::System.String coderead, global::System.UInt32 readernumber)
        {
            if (logger.IsEnabled(global::Microsoft.Extensions.Logging.LogLevel.Information))
            {
                __CodeReceptionCallback(logger, coderead, readernumber, null);
            }
        }
    }
So far, I have tried various approaches. In addition to restarting, rebuilding, and deleting the "bin" and "obj" folders, I have attempted to rename my classes and methods. I also created a small test solution that references the Logger project and uses it in the same way, and it worked there.
Now, I know it should work, but it's still not working.
I thought that Visual Studio might be generating two sets of partial classes, so I deleted all the files in the "Temp\VSGeneratedDocuments" directory, but that didn't resolve the issue either.
Any help would be appreciated.