QuestPDF icon indicating copy to clipboard operation
QuestPDF copied to clipboard

Previewer crashes at startup - supposedly because some picture is missing

Open kirides opened this issue 1 year ago • 7 comments

Describe the bug The previewer crashes upon startup

tested with version 2022.8.0 of QuestPDF and QuestPDF.Previewer

Exception from questpdf-previewer.exe:

Application: questpdf-previewer.exe
CoreCLR Version: 6.0.822.36306
.NET Version: 6.0.8
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ArgumentNullException: Value cannot be null. (Parameter 'picture')
   at SkiaSharp.SKCanvas.DrawPicture(SKPicture picture, SKPaint paint)
   at QuestPDF.Previewer.InteractiveCanvas.Render(IDrawingContextImpl context) in D:\QuestPDF\QuestPDF.Previewer\InteractiveCanvas.cs:line 132
   at Avalonia.Rendering.SceneGraph.CustomDrawOperation.Render(IDrawingContextImpl context) in /_/src/Avalonia.Visuals/Rendering/SceneGraph/CustomDrawOperation.cs:line 31
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 437
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.RenderToLayers(Scene scene) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 472
   at Avalonia.Rendering.DeferredRenderer.UpdateRenderLayersAndConsumeSceneIfNeeded(IDrawingContextImpl& context, Boolean recursiveCall) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 378
   at Avalonia.Rendering.DeferredRenderer.Render(Boolean forceComposite) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 323
   at Avalonia.Rendering.DeferredRenderer.Paint(Rect rect) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 228
   at Avalonia.Controls.TopLevel.HandlePaint(Rect rect) in /_/src/Avalonia.Controls/TopLevel.cs:line 351
   at Avalonia.Win32.WindowImpl.AppWndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in /_/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs:line 369
   at Avalonia.Win32.WindowImpl.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in /_/src/Windows/Avalonia.Win32/WindowImpl.WndProc.cs:line 30

Exception in application:

Application: Reporting.CLI.exe
CoreCLR Version: 6.0.822.36306
.NET Version: 6.0.8
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Threading.Tasks.TaskCanceledException: A task was canceled.
   at QuestPDF.Previewer.Extensions.<ShowInPreviewerAsync>g__WaitForPreviewerExit|1_3(CancellationToken cancellationToken)
   at QuestPDF.Previewer.Extensions.ShowInPreviewerAsync(IDocument document, Int32 port)
   at QuestPDF.Previewer.Extensions.ShowInPreviewer(IDocument document, Int32 port)
   at Program.<Main>$(String[] args) in C:\Reporting.CLI\Program.cs:line 58

To Reproduce reporting.zip

Expected behavior Preview works as expected

Screenshots

https://user-images.githubusercontent.com/13602143/185056684-d3b452e0-4a7f-403a-9b53-baf96adb2326.mp4

Additional context Add any other context about the problem here.

kirides avatar Aug 17 '22 07:08 kirides

Let's start by testing if the official example works on your end. Please clone this repository to your PC, change code in the Program.cs file to enable previewer and test if it works correctly.

MarcinZiabek avatar Aug 17 '22 09:08 MarcinZiabek

I have found that these nuget packages added to the reporting project are preventing the previewer from working correctly. Also, as far as I know, you are on Windows PC, so they should not be required.

<PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.88.0" IncludeAssets="native" />
<PackageReference Include="HarfBuzzSharp.NativeAssets.Linux" Version="2.8.2" IncludeAssets="native" />

MarcinZiabek avatar Aug 17 '22 21:08 MarcinZiabek

Also, as far as I know, you are on Windows PC, so they should not be required.

<PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.88.0" IncludeAssets="native" />
<PackageReference Include="HarfBuzzSharp.NativeAssets.Linux" Version="2.8.2" IncludeAssets="native" />

Thats half correct, i need them (i guess) because the actual service also runs on clients Linux'es, Docker and also cloud providers Without them, we get errors about libHarfbuzzNet missing and others.

i just found out you can use PowerShell for Conditions in MSBuild.

Previewer works with the following. Also printing in Linux still works. I guess this could be put as an information into the readme ...? this requires you to BUILD the app ON linux to make it work propery and ist only a workaround

<ItemGroup Condition=" '$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))' ">
  <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.88.0" IncludeAssets="native" />
  <PackageReference Include="HarfBuzzSharp.NativeAssets.Linux" Version="2.8.2" IncludeAssets="native" />
</ItemGroup>

i still don't get why the previewer dies when those are present, but... eh

kirides avatar Aug 18 '22 06:08 kirides

I get this error using paket, that is not importing the linux files. I have pasted below the paket.lock file that lists all the packages being imported. Only windows and macos is being imported.

STORAGE: NONE RESTRICTION: == net6.0 NUGET remote: https://api.nuget.org/v3/index.json Append.Blazor.Printing (1.1) Microsoft.AspNetCore.Components.Web (>= 5.0) Bolero (0.20.18) Elmish (>= 3.1 < 4.0) FSharp.Core (>= 6.0) FSharp.SystemTextJson (>= 0.19.13) Microsoft.AspNetCore.Components.WebAssembly (>= 6.0) Microsoft.Extensions.Http (>= 6.0) Bolero.Build (0.20.18) Bolero.HotReload (0.20.4) Bolero (>= 0.20.11) FSharp.Core (>= 6.0) HtmlAgilityPack (>= 1.11.39) Microsoft.AspNetCore.SignalR.Client (>= 6.0) Bolero.HotReload.Server (0.20.4) Bolero.HotReload (0.20.4) Bolero.Server (>= 0.20.11) FSharp.Core (>= 6.0) Bolero.Server (0.20.18) Bolero (0.20.18) FSharp.Core (>= 6.0) FSharp.SystemTextJson (>= 0.19.13) Donald (7.1) FSharp.Core (>= 6.0.1) Elmish (3.1) FSharp.Core (>= 4.6.2) Elmish.WPF (3.5.8) Elmish (>= 3.0.3 <= 3.99) FSharp.Core (>= 4.6.2) Evolve (3.0) FSharp.Control.AsyncSeq (3.2.1) FSharp.Core (>= 4.7.2) Microsoft.Bcl.AsyncInterfaces (>= 5.0) FSharp.Core (6.0.5) - content: none FSharp.Data (5.0.2) FSharp.Core (>= 5.0.1) FSharp.SystemTextJson (0.19.13) FSharp.Core (>= 4.7) System.Text.Json (>= 6.0) HarfBuzzSharp (2.8.2.1) HarfBuzzSharp.NativeAssets.macOS (>= 2.8.2.1) HarfBuzzSharp.NativeAssets.Win32 (>= 2.8.2.1) HarfBuzzSharp.NativeAssets.macOS (2.8.2.1) HarfBuzzSharp.NativeAssets.Win32 (2.8.2.1) HtmlAgilityPack (1.11.43) Microsoft.AspNetCore.Authorization (6.0.8) Microsoft.AspNetCore.Metadata (>= 6.0.8) Microsoft.Extensions.Logging.Abstractions (>= 6.0.1) Microsoft.Extensions.Options (>= 6.0) Microsoft.AspNetCore.Components (6.0.8) Microsoft.AspNetCore.Authorization (>= 6.0.8) Microsoft.AspNetCore.Components.Analyzers (>= 6.0.8) Microsoft.AspNetCore.Components.Analyzers (6.0.8) Microsoft.AspNetCore.Components.Forms (6.0.8) Microsoft.AspNetCore.Components (>= 6.0.8) Microsoft.AspNetCore.Components.Web (6.0.8) Microsoft.AspNetCore.Components (>= 6.0.8) Microsoft.AspNetCore.Components.Forms (>= 6.0.8) Microsoft.Extensions.DependencyInjection (>= 6.0) Microsoft.JSInterop (>= 6.0.8) System.IO.Pipelines (>= 6.0.3) Microsoft.AspNetCore.Components.WebAssembly (6.0.8) Microsoft.AspNetCore.Components.Web (>= 6.0.8) Microsoft.Extensions.Configuration.Binder (>= 6.0) Microsoft.Extensions.Configuration.Json (>= 6.0) Microsoft.Extensions.Logging (>= 6.0) Microsoft.JSInterop.WebAssembly (>= 6.0.8) Microsoft.AspNetCore.Components.WebAssembly.DevServer (6.0.8) Microsoft.AspNetCore.Components.WebAssembly.Server (6.0.8) Microsoft.AspNetCore.Connections.Abstractions (6.0.8) Microsoft.Extensions.Features (>= 6.0.8) System.IO.Pipelines (>= 6.0.3) Microsoft.AspNetCore.Http.Connections.Client (6.0.8) Microsoft.AspNetCore.Http.Connections.Common (>= 6.0.8) Microsoft.Extensions.Logging.Abstractions (>= 6.0.1) Microsoft.Extensions.Options (>= 6.0) Microsoft.AspNetCore.Http.Connections.Common (6.0.8) Microsoft.AspNetCore.Connections.Abstractions (>= 6.0.8) Microsoft.AspNetCore.Metadata (6.0.8) Microsoft.AspNetCore.SignalR.Client (6.0.8) Microsoft.AspNetCore.Http.Connections.Client (>= 6.0.8) Microsoft.AspNetCore.SignalR.Client.Core (>= 6.0.8) Microsoft.AspNetCore.SignalR.Client.Core (6.0.8) Microsoft.AspNetCore.SignalR.Common (>= 6.0.8) Microsoft.AspNetCore.SignalR.Protocols.Json (>= 6.0.8) Microsoft.Extensions.DependencyInjection (>= 6.0) Microsoft.Extensions.Logging (>= 6.0) System.Threading.Channels (>= 6.0) Microsoft.AspNetCore.SignalR.Common (6.0.8) Microsoft.AspNetCore.Connections.Abstractions (>= 6.0.8) Microsoft.Extensions.Options (>= 6.0) Microsoft.AspNetCore.SignalR.Protocols.Json (6.0.8) Microsoft.AspNetCore.SignalR.Common (>= 6.0.8) Microsoft.Bcl.AsyncInterfaces (6.0) Microsoft.Extensions.Configuration (6.0.1) Microsoft.Extensions.Configuration.Abstractions (>= 6.0) Microsoft.Extensions.Primitives (>= 6.0) Microsoft.Extensions.Configuration.Abstractions (6.0) Microsoft.Extensions.Primitives (>= 6.0) Microsoft.Extensions.Configuration.Binder (6.0) Microsoft.Extensions.Configuration.Abstractions (>= 6.0) Microsoft.Extensions.Configuration.FileExtensions (6.0) Microsoft.Extensions.Configuration (>= 6.0) Microsoft.Extensions.Configuration.Abstractions (>= 6.0) Microsoft.Extensions.FileProviders.Abstractions (>= 6.0) Microsoft.Extensions.FileProviders.Physical (>= 6.0) Microsoft.Extensions.Primitives (>= 6.0) Microsoft.Extensions.Configuration.Json (6.0) Microsoft.Extensions.Configuration (>= 6.0) Microsoft.Extensions.Configuration.Abstractions (>= 6.0) Microsoft.Extensions.Configuration.FileExtensions (>= 6.0) Microsoft.Extensions.FileProviders.Abstractions (>= 6.0) System.Text.Json (>= 6.0) Microsoft.Extensions.DependencyInjection (6.0) Microsoft.Extensions.DependencyInjection.Abstractions (>= 6.0) System.Runtime.CompilerServices.Unsafe (>= 6.0) Microsoft.Extensions.DependencyInjection.Abstractions (6.0) Microsoft.Extensions.Features (6.0.8) Microsoft.Extensions.FileProviders.Abstractions (6.0) Microsoft.Extensions.Primitives (>= 6.0) Microsoft.Extensions.FileProviders.Physical (6.0) Microsoft.Extensions.FileProviders.Abstractions (>= 6.0) Microsoft.Extensions.FileSystemGlobbing (>= 6.0) Microsoft.Extensions.Primitives (>= 6.0) Microsoft.Extensions.FileSystemGlobbing (6.0) Microsoft.Extensions.Http (6.0) Microsoft.Extensions.DependencyInjection.Abstractions (>= 6.0) Microsoft.Extensions.Logging (>= 6.0) Microsoft.Extensions.Logging.Abstractions (>= 6.0) Microsoft.Extensions.Options (>= 6.0) Microsoft.Extensions.Logging (6.0) Microsoft.Extensions.DependencyInjection (>= 6.0) Microsoft.Extensions.DependencyInjection.Abstractions (>= 6.0) Microsoft.Extensions.Logging.Abstractions (>= 6.0) Microsoft.Extensions.Options (>= 6.0) System.Diagnostics.DiagnosticSource (>= 6.0) Microsoft.Extensions.Logging.Abstractions (6.0.1) Microsoft.Extensions.Options (6.0) Microsoft.Extensions.DependencyInjection.Abstractions (>= 6.0) Microsoft.Extensions.Primitives (>= 6.0) Microsoft.Extensions.Primitives (6.0) System.Runtime.CompilerServices.Unsafe (>= 6.0) Microsoft.JSInterop (6.0.8) Microsoft.JSInterop.WebAssembly (6.0.8) Microsoft.JSInterop (>= 6.0.8) Npgsql (6.0.6) System.Runtime.CompilerServices.Unsafe (>= 6.0) Ookii.Dialogs.Wpf (5.0.1) QuestPdf (2022.8) SkiaSharp (>= 2.80.4) SkiaSharp.HarfBuzz (>= 2.80.4) SkiaSharp (2.88.1) SkiaSharp.NativeAssets.macOS (>= 2.88.1) SkiaSharp.NativeAssets.Win32 (>= 2.88.1) SkiaSharp.HarfBuzz (2.88.1) HarfBuzzSharp (>= 2.8.2.1) SkiaSharp (>= 2.88.1) SkiaSharp.NativeAssets.macOS (2.88.1) SkiaSharp.NativeAssets.Win32 (2.88.1) System.Diagnostics.DiagnosticSource (6.0) System.Runtime.CompilerServices.Unsafe (>= 6.0) System.IO.Pipelines (6.0.3) System.Runtime.CompilerServices.Unsafe (6.0) System.Text.Encodings.Web (6.0) System.Runtime.CompilerServices.Unsafe (>= 6.0) System.Text.Json (6.0.5) System.Runtime.CompilerServices.Unsafe (>= 6.0) System.Text.Encodings.Web (>= 6.0) System.Threading.Channels (6.0)

kgday avatar Aug 18 '22 06:08 kgday

I added a note about having to BUILD on linux in this case. This currently works for us, as we always build on the target platform, to minimize portability issues.

kirides avatar Aug 18 '22 06:08 kirides

I believe i found the root cause of this issue here. Following scenario causes crash:

If your project which generates the document and calls ShowInPreviewer() is using another SkiaSharp version then the standalone previewer (nuget tool), SKPicture cannot be deserialized properly, causing the previewer to crash (SKPicture null)

Exception Info: System.ArgumentNullException: Value cannot be null. (Parameter 'picture')
   at SkiaSharp.SKCanvas.DrawPicture(SKPicture picture, SKPaint paint)

I do not believe this has anything to do with Linux. You can see this problem in the paket.lock example from @kgday

SkiaSharp (>= 2.80.4) //Skia version used by Quest PDF
SkiaSharp.HarfBuzz (>= 2.80.4)
SkiaSharp (2.88.1) //Skia version used by something else causing the previewer to crash!
SkiaSharp.NativeAssets.macOS (>= 2.88.1)
SkiaSharp.NativeAssets.Win32 (>= 2.88.1)
SkiaSharp.HarfBuzz (2.88.1)

bennetbo avatar Aug 22 '22 13:08 bennetbo

I locked the skia version to 2.80.4 and upgaded QuestPdf. Still getting the same problem. I think I am missing something. The new paket.lock file. I am using FSharp, but that shouldn't make any difference.

STORAGE: NONE
RESTRICTION: == net6.0
NUGET
  remote: https://api.nuget.org/v3/index.json
    Append.Blazor.Printing (1.1)
      Microsoft.AspNetCore.Components.Web (>= 5.0)
    Bolero (0.20.18)
      Elmish (>= 3.1 < 4.0)
      FSharp.Core (>= 6.0)
      FSharp.SystemTextJson (>= 0.19.13)
      Microsoft.AspNetCore.Components.WebAssembly (>= 6.0)
      Microsoft.Extensions.Http (>= 6.0)
    Bolero.Build (0.20.18)
    Bolero.HotReload (0.20.4)
      Bolero (>= 0.20.11)
      FSharp.Core (>= 6.0)
      HtmlAgilityPack (>= 1.11.39)
      Microsoft.AspNetCore.SignalR.Client (>= 6.0)
    Bolero.HotReload.Server (0.20.4)
      Bolero.HotReload (0.20.4)
      Bolero.Server (>= 0.20.11)
      FSharp.Core (>= 6.0)
    Bolero.Server (0.20.18)
      Bolero (0.20.18)
      FSharp.Core (>= 6.0)
      FSharp.SystemTextJson (>= 0.19.13)
    Donald (7.1)
      FSharp.Core (>= 6.0.1)
    Elmish (3.1)
      FSharp.Core (>= 4.6.2)
    Elmish.WPF (3.5.8)
      Elmish (>= 3.0.3 <= 3.99)
      FSharp.Core (>= 4.6.2)
    Evolve (3.0)
    FSharp.Control.AsyncSeq (3.2.1)
      FSharp.Core (>= 4.7.2)
      Microsoft.Bcl.AsyncInterfaces (>= 5.0)
    FSharp.Core (6.0.5) - content: none
    FSharp.Data (5.0.2)
      FSharp.Core (>= 5.0.1)
    FSharp.SystemTextJson (0.19.13)
      FSharp.Core (>= 4.7)
      System.Text.Json (>= 6.0)
    HarfBuzzSharp (2.8.2.1)
      HarfBuzzSharp.NativeAssets.macOS (>= 2.8.2.1)
      HarfBuzzSharp.NativeAssets.Win32 (>= 2.8.2.1)
    HarfBuzzSharp.NativeAssets.macOS (2.8.2.1)
    HarfBuzzSharp.NativeAssets.Win32 (2.8.2.1)
    HtmlAgilityPack (1.11.45)
    Microsoft.AspNetCore.Authorization (6.0.8)
      Microsoft.AspNetCore.Metadata (>= 6.0.8)
      Microsoft.Extensions.Logging.Abstractions (>= 6.0.1)
      Microsoft.Extensions.Options (>= 6.0)
    Microsoft.AspNetCore.Components (6.0.8)
      Microsoft.AspNetCore.Authorization (>= 6.0.8)
      Microsoft.AspNetCore.Components.Analyzers (>= 6.0.8)
    Microsoft.AspNetCore.Components.Analyzers (6.0.8)
    Microsoft.AspNetCore.Components.Forms (6.0.8)
      Microsoft.AspNetCore.Components (>= 6.0.8)
    Microsoft.AspNetCore.Components.Web (6.0.8)
      Microsoft.AspNetCore.Components (>= 6.0.8)
      Microsoft.AspNetCore.Components.Forms (>= 6.0.8)
      Microsoft.Extensions.DependencyInjection (>= 6.0)
      Microsoft.JSInterop (>= 6.0.8)
      System.IO.Pipelines (>= 6.0.3)
    Microsoft.AspNetCore.Components.WebAssembly (6.0.8)
      Microsoft.AspNetCore.Components.Web (>= 6.0.8)
      Microsoft.Extensions.Configuration.Binder (>= 6.0)
      Microsoft.Extensions.Configuration.Json (>= 6.0)
      Microsoft.Extensions.Logging (>= 6.0)
      Microsoft.JSInterop.WebAssembly (>= 6.0.8)
    Microsoft.AspNetCore.Components.WebAssembly.DevServer (6.0.8)
    Microsoft.AspNetCore.Components.WebAssembly.Server (6.0.8)
    Microsoft.AspNetCore.Connections.Abstractions (6.0.8)
      Microsoft.Extensions.Features (>= 6.0.8)
      System.IO.Pipelines (>= 6.0.3)
    Microsoft.AspNetCore.Http.Connections.Client (6.0.8)
      Microsoft.AspNetCore.Http.Connections.Common (>= 6.0.8)
      Microsoft.Extensions.Logging.Abstractions (>= 6.0.1)
      Microsoft.Extensions.Options (>= 6.0)
    Microsoft.AspNetCore.Http.Connections.Common (6.0.8)
      Microsoft.AspNetCore.Connections.Abstractions (>= 6.0.8)
    Microsoft.AspNetCore.Metadata (6.0.8)
    Microsoft.AspNetCore.SignalR.Client (6.0.8)
      Microsoft.AspNetCore.Http.Connections.Client (>= 6.0.8)
      Microsoft.AspNetCore.SignalR.Client.Core (>= 6.0.8)
    Microsoft.AspNetCore.SignalR.Client.Core (6.0.8)
      Microsoft.AspNetCore.SignalR.Common (>= 6.0.8)
      Microsoft.AspNetCore.SignalR.Protocols.Json (>= 6.0.8)
      Microsoft.Extensions.DependencyInjection (>= 6.0)
      Microsoft.Extensions.Logging (>= 6.0)
      System.Threading.Channels (>= 6.0)
    Microsoft.AspNetCore.SignalR.Common (6.0.8)
      Microsoft.AspNetCore.Connections.Abstractions (>= 6.0.8)
      Microsoft.Extensions.Options (>= 6.0)
    Microsoft.AspNetCore.SignalR.Protocols.Json (6.0.8)
      Microsoft.AspNetCore.SignalR.Common (>= 6.0.8)
    Microsoft.Bcl.AsyncInterfaces (6.0)
    Microsoft.Extensions.Configuration (6.0.1)
      Microsoft.Extensions.Configuration.Abstractions (>= 6.0)
      Microsoft.Extensions.Primitives (>= 6.0)
    Microsoft.Extensions.Configuration.Abstractions (6.0)
      Microsoft.Extensions.Primitives (>= 6.0)
    Microsoft.Extensions.Configuration.Binder (6.0)
      Microsoft.Extensions.Configuration.Abstractions (>= 6.0)
    Microsoft.Extensions.Configuration.FileExtensions (6.0)
      Microsoft.Extensions.Configuration (>= 6.0)
      Microsoft.Extensions.Configuration.Abstractions (>= 6.0)
      Microsoft.Extensions.FileProviders.Abstractions (>= 6.0)
      Microsoft.Extensions.FileProviders.Physical (>= 6.0)
      Microsoft.Extensions.Primitives (>= 6.0)
    Microsoft.Extensions.Configuration.Json (6.0)
      Microsoft.Extensions.Configuration (>= 6.0)
      Microsoft.Extensions.Configuration.Abstractions (>= 6.0)
      Microsoft.Extensions.Configuration.FileExtensions (>= 6.0)
      Microsoft.Extensions.FileProviders.Abstractions (>= 6.0)
      System.Text.Json (>= 6.0)
    Microsoft.Extensions.DependencyInjection (6.0)
      Microsoft.Extensions.DependencyInjection.Abstractions (>= 6.0)
      System.Runtime.CompilerServices.Unsafe (>= 6.0)
    Microsoft.Extensions.DependencyInjection.Abstractions (6.0)
    Microsoft.Extensions.Features (6.0.8)
    Microsoft.Extensions.FileProviders.Abstractions (6.0)
      Microsoft.Extensions.Primitives (>= 6.0)
    Microsoft.Extensions.FileProviders.Physical (6.0)
      Microsoft.Extensions.FileProviders.Abstractions (>= 6.0)
      Microsoft.Extensions.FileSystemGlobbing (>= 6.0)
      Microsoft.Extensions.Primitives (>= 6.0)
    Microsoft.Extensions.FileSystemGlobbing (6.0)
    Microsoft.Extensions.Http (6.0)
      Microsoft.Extensions.DependencyInjection.Abstractions (>= 6.0)
      Microsoft.Extensions.Logging (>= 6.0)
      Microsoft.Extensions.Logging.Abstractions (>= 6.0)
      Microsoft.Extensions.Options (>= 6.0)
    Microsoft.Extensions.Logging (6.0)
      Microsoft.Extensions.DependencyInjection (>= 6.0)
      Microsoft.Extensions.DependencyInjection.Abstractions (>= 6.0)
      Microsoft.Extensions.Logging.Abstractions (>= 6.0)
      Microsoft.Extensions.Options (>= 6.0)
      System.Diagnostics.DiagnosticSource (>= 6.0)
    Microsoft.Extensions.Logging.Abstractions (6.0.1)
    Microsoft.Extensions.Options (6.0)
      Microsoft.Extensions.DependencyInjection.Abstractions (>= 6.0)
      Microsoft.Extensions.Primitives (>= 6.0)
    Microsoft.Extensions.Primitives (6.0)
      System.Runtime.CompilerServices.Unsafe (>= 6.0)
    Microsoft.JSInterop (6.0.8)
    Microsoft.JSInterop.WebAssembly (6.0.8)
      Microsoft.JSInterop (>= 6.0.8)
    Npgsql (6.0.6)
      System.Runtime.CompilerServices.Unsafe (>= 6.0)
    Ookii.Dialogs.Wpf (5.0.1)
    QuestPdf (2022.8.2)
      SkiaSharp (>= 2.80.4)
      SkiaSharp.HarfBuzz (>= 2.80.4)
    SkiaSharp (2.80.4)
      System.Memory (>= 4.5.3)
    SkiaSharp.HarfBuzz (2.80.4)
      HarfBuzzSharp (>= 2.6.1.9)
      SkiaSharp (>= 2.80.4)
    System.Diagnostics.DiagnosticSource (6.0)
      System.Runtime.CompilerServices.Unsafe (>= 6.0)
    System.IO.Pipelines (6.0.3)
    System.Memory (4.5.5)
    System.Runtime.CompilerServices.Unsafe (6.0)
    System.Text.Encodings.Web (6.0)
      System.Runtime.CompilerServices.Unsafe (>= 6.0)
    System.Text.Json (6.0.5)
      System.Runtime.CompilerServices.Unsafe (>= 6.0)
      System.Text.Encodings.Web (>= 6.0)
    System.Threading.Channels (6.0)

kgday avatar Aug 23 '22 23:08 kgday