Dreamescaper / GenerateAspNetCoreClient

DotNet tool to generate HTTP client classes from ASP.NET Core api controllers.
MIT License
63 stars 5 forks source link

Could not load type 'System.Runtime.CompilerServices.Unsafe' when running tool #16

Open Sunslash opened 1 year ago

Sunslash commented 1 year ago

Hello,

I am trying to run this tool against a simple dotnet 6 project, but something goes wrong during the execution. The build step runs fine, but the execution right after that stops immediately. I have both dotnet 6 and dotnet 7 installed. ` Build succeeded. 0 Warning(s) 0 Error(s)

Time Elapsed 00:00:08.50 fail: Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider[48] An error occurred while reading the key ring. System.TypeLoadException: Could not load type 'System.Runtime.CompilerServices.Unsafe' from assembly 'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. at System.Xml.XmlTextReaderImpl.ParseXmlDeclaration(Boolean isTextDecl) at System.Xml.XmlTextReaderImpl.Read() at System.Xml.XmlReader.MoveToContent() at System.Xml.Linq.XElement.Load(XmlReader reader, LoadOptions options) at System.Xml.Linq.XElement.Load(Stream stream, LoadOptions options) at System.Xml.Linq.XElement.Load(Stream stream) at Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository.ReadElementFromFile(String fullPath) at Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository.GetAllElementsCore()+MoveNext() at System.Collections.Generic.List1..ctor(IEnumerable1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source) at Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository.GetAllElements() at Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager.GetAllKeys() at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider.CreateCacheableKeyRingCore(DateTimeOffset now, IKey keyJustAdded) at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider.Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.ICacheableKeyRingProvider.GetCacheableKeyRing(DateTimeOffset now) at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider.GetCurrentKeyRingCore(DateTime utcNow, Boolean forceRefresh) crit: Microsoft.AspNetCore.Hosting.Diagnostics[6] Application startup exception System.TypeLoadException: Could not load type 'System.Runtime.CompilerServices.Unsafe' from assembly 'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. at System.Xml.XmlTextReaderImpl.ParseXmlDeclaration(Boolean isTextDecl) at System.Xml.XmlTextReaderImpl.Read() at System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options) at System.Xml.Linq.XDocument.Load(Stream stream, LoadOptions options) at System.Xml.Linq.XDocument.Load(Stream stream) at Microsoft.Extensions.FileProviders.Embedded.Manifest.ManifestParser.Parse(Assembly assembly, String name) at Microsoft.Extensions.FileProviders.Embedded.Manifest.ManifestParser.Parse(Assembly assembly) at Microsoft.Extensions.FileProviders.ManifestEmbeddedFileProvider..ctor(Assembly assembly) at Microsoft.AspNetCore.Components.Server.ConfigureStaticFilesOptions.PostConfigure(String name, StaticFileOptions options) at Microsoft.Extensions.Options.OptionsFactory1.Create(String name) at Microsoft.Extensions.Options.UnnamedOptionsManager1.get_Value() at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware..ctor(RequestDelegate next, IWebHostEnvironment hostingEnv, IOptions1 options, ILoggerFactory loggerFactory) at System.RuntimeMethodHandle.InvokeMethod(Object target, Void arguments, Signature sig, Boolean isConstructor) at System.Reflection.ConstructorInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.Extensions.Internal.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider) at Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters) at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>cDisplayClass5_0.b0(RequestDelegate next) at Microsoft.AspNetCore.Builder.ApplicationBuilder.Build() at Microsoft.AspNetCore.Builder.WebApplication.BuildRequestDelegate() at Microsoft.AspNetCore.Builder.WebApplicationBuilder.b27_0(RequestDelegate next) at Microsoft.AspNetCore.Builder.ApplicationBuilder.Build() at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) Unhandled exception. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AggregateException: One or more errors occurred. (Could not load type 'System.Runtime.CompilerServices.Unsafe' from assembly 'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.) ---> System.TypeLoadException: Could not load type 'System.Runtime.CompilerServices.Unsafe' from assembly 'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. at System.Xml.XmlTextReaderImpl.ParseXmlDeclaration(Boolean isTextDecl) at System.Xml.XmlTextReaderImpl.Read() at System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options) at System.Xml.Linq.XDocument.Load(Stream stream, LoadOptions options) at System.Xml.Linq.XDocument.Load(Stream stream) at Microsoft.Extensions.FileProviders.Embedded.Manifest.ManifestParser.Parse(Assembly assembly, String name) at Microsoft.Extensions.FileProviders.Embedded.Manifest.ManifestParser.Parse(Assembly assembly) at Microsoft.Extensions.FileProviders.ManifestEmbeddedFileProvider..ctor(Assembly assembly) at Microsoft.AspNetCore.Components.Server.ConfigureStaticFilesOptions.PostConfigure(String name, StaticFileOptions options) at Microsoft.Extensions.Options.OptionsFactory1.Create(String name) at Microsoft.Extensions.Options.UnnamedOptionsManager1.get_Value() at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware..ctor(RequestDelegate next, IWebHostEnvironment hostingEnv, IOptions`1 options, ILoggerFactory loggerFactory) at System.RuntimeMethodHandle.InvokeMethod(Object target, Void* arguments, Signature sig, Boolean isConstructor) at System.Reflection.ConstructorInvoker.Invoke(Object obj, IntPtr args, BindingFlags invokeAttr) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.Extensions.Internal.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider) at Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters) at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass5_0.b0(RequestDelegate next) at Microsoft.AspNetCore.Builder.ApplicationBuilder.Build() at Microsoft.AspNetCore.Builder.WebApplication.BuildRequestDelegate() at Microsoft.AspNetCore.Builder.WebApplicationBuilder.b__27_0(RequestDelegate next) at Microsoft.AspNetCore.Builder.ApplicationBuilder.Build() at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host) at Microsoft.AspNetCore.Builder.WebApplication.Run(String url) at Program.

$(String[] args) in C:\Users\kdecuyper\source\repos\WebDisplay\WebDisplayApp\Program.cs:line 38 at System.RuntimeMethodHandle.InvokeMethod(Object target, Void arguments, Signature sig, Boolean isConstructor) at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr args, BindingFlags invokeAttr) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait() at GenerateAspNetCoreClient.Command.ServiceProviderResolver.GetServiceProviderWithHostFactoryResolver(Assembly assembly) in /home/runner/work/GenerateAspNetCoreClient/GenerateAspNetCoreClient/GenerateAspNetCoreClient.Command/ServiceProviderResolver.cs:line 160 at GenerateAspNetCoreClient.Command.ServiceProviderResolver.GetServiceProvider(Assembly assembly) in /home/runner/work/GenerateAspNetCoreClient/GenerateAspNetCoreClient/GenerateAspNetCoreClient.Command/ServiceProviderResolver.cs:line 72 at GenerateAspNetCoreClient.Command.GenerateClientCommand.GetApiExplorer(Assembly assembly, String environment) in /home/runner/work/GenerateAspNetCoreClient/GenerateAspNetCoreClient/GenerateAspNetCoreClient.Command/GenerateClientCommand.cs:line 40 at GenerateAspNetCoreClient.Command.GenerateClientCommand.Invoke(Assembly assembly, GenerateClientOptions options) in /home/runner/work/GenerateAspNetCoreClient/GenerateAspNetCoreClient/GenerateAspNetCoreClient.Command/GenerateClientCommand.cs:line 19 at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr args, BindingFlags invokeAttr) --- End of inner exception stack trace --- at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at GenerateAspNetCoreClient.Program.CreateClient(GenerateClientOptions options) in /home/runner/work/GenerateAspNetCoreClient/GenerateAspNetCoreClient/GenerateAspNetCoreClient/Program.cs:line 34 at GenerateAspNetCoreClient.Program.<>c.
b__0_0(GenerateClientOptions options) in /home/runner/work/GenerateAspNetCoreClient/GenerateAspNetCoreClient/GenerateAspNetCoreClient/Program.cs:line 18 at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult1 result, Action1 action) at GenerateAspNetCoreClient.Program.Main(String[] args) in /home/runner/work/GenerateAspNetCoreClient/GenerateAspNetCoreClient/GenerateAspNetCoreClient/Program.cs:line 16 `

How can I solve this ? Is it an issue on my side ?

Dreamescaper commented 1 year ago

I hoped this issue to be fixed in release 1.1 :(

Could you confirm that you're using the latest version?

Sunslash commented 1 year ago

Hello, Yes, I installed the latest version using dotnet tool install GenerateAspNetCoreClient.Refit -g

Dreamescaper commented 1 year ago

Could you confirm that if you execute dotnet tool list -g, it prints 1.1.0 for generateaspnetcoreclient.refit package?

If yes, then I would ask to provide a sample project. Unfortunately, I've failed to reproduce this issue with the net6.0 projects that I've tried.

Thanks!