Carter icon indicating copy to clipboard operation
Carter copied to clipboard

"Object reference not set to an instance of an object." produced when using 'Self-contained' AND 'Produce single file' publishing options in net6.0

Open developarratoutlookdotcom opened this issue 3 years ago • 2 comments

Error

I receive the error when trying to run an app 'published' with the following settings:

  • net6.0-windows
  • self-contained
  • win-x64
  • single file
System.NullReferenceException: Object reference not set to an instance of an object.
   at Carter.DependencyContextAssemblyCatalog.GetAssemblies()
   at Carter.CarterExtensions.WireupCarter(IServiceCollection services, DependencyContextAssemblyCatalog assemblyCatalog, CarterConfigurator carterConfigurator)
   at Carter.CarterExtensions.AddCarter(IServiceCollection services, DependencyContextAssemblyCatalog assemblyCatalog, Action`1 configurator)
   at Microsoft.Extensions.DependencyInjection.ServiceCollectionExtensions.AddMintWebApp(WebApplicationBuilder builder)
   at Program.<Main>$(String[] args) in Program.cs:line 12

Current workaround

Simply remove the 'single file' option.

Additional information

Basically it works OK as long as you don't try to publish with the 'single file' option. Tested all other combinations and it works OK. Reason for using 'single file' is more for simplicity, massive reduction in files (rather than overall size - although that is a consideration). So work around is personally acceptable but def. be nice to have.

I'm facing the same problem. Currently, uncheck the single file works but it makes the deployment process complicated.

datnguyen293 avatar Jun 14 '22 09:06 datnguyen293

As of .Net 6, getting the DependencyContext of an application deployed as a single-file is not supported. Carter is using the DependencyContext in the DependencyContextAssemblyCatalog.

The issue can be tracked here https://github.com/dotnet/runtime/issues/70438

ritasker avatar Jun 14 '22 16:06 ritasker