Skip to content

[Wasm][AOT] Precompilation fails using Syncfusion.Blazor.dll #61053

@SimonSchwendele

Description

@SimonSchwendele

Description

After upgrading the Project from net5 to net6 everyting still compiles/runs fine.
Enabling the AoT however makes the publish command fail.

`dotnet publish` output
$ dotnet publish GameBuddy.sln -c Release -o ./pub/ -bl
Microsoft (R) Build Engine version 17.0.0-preview-21501-01+bbcce1dff for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

C:\Program Files\dotnet\sdk\6.0.100-rc.2.21505.57\MSBuild.dll -bl -distributedlogger:Microsoft.DotNet.Tools.MSBuild.MSBuildLogger,C:\Program Files\dotnet\sdk\6.0.100-rc.2.21505.57\dotnet.dll*Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingLogger,C:\Program Files\dotnet\sdk\6.0.100-rc.2.21505.57\dotnet.dll -maxcpucount -property:PublishDir=C:\uselessStuff\GameBuddy\pub\ -property:Configuration=Release -restore -target:Publish -verbosity:m GameBuddy.sln
  Determining projects to restore...
  Restored C:\uselessStuff\GameBuddy\src\backend\GameBuddy.Models\GameBuddy.Models.csproj (in 139 ms).
  Restored C:\uselessStuff\GameBuddy\src\backend\GameBuddy.Data\GameBuddy.Data.csproj (in 139 ms).
  Restored C:\uselessStuff\GameBuddy\src\Shared\GameBuddy.Shared.csproj (in 139 ms).
  Restored C:\uselessStuff\GameBuddy\src\backend\GameBuddy.Data.Ef\GameBuddy.Data.Ef.csproj (in 139 ms).      
  Restored C:\uselessStuff\GameBuddy\src\backend\GameBuddy.Data.NoSql\GameBuddy.Data.NoSql.csproj (in 139 ms).
  Restored C:\uselessStuff\GameBuddy\src\Server\GameBuddy.Server.csproj (in 2.47 sec).
  Restored C:\uselessStuff\GameBuddy\src\Client\GameBuddy.Client.csproj (in 2.47 sec).
  You are using a preview version of .NET. See: https://aka.ms/dotnet-core-preview
  You are using a preview version of .NET. See: https://aka.ms/dotnet-core-preview
  You are using a preview version of .NET. See: https://aka.ms/dotnet-core-preview
  You are using a preview version of .NET. See: https://aka.ms/dotnet-core-preview
  You are using a preview version of .NET. See: https://aka.ms/dotnet-core-preview
  You are using a preview version of .NET. See: https://aka.ms/dotnet-core-preview
  You are using a preview version of .NET. See: https://aka.ms/dotnet-core-preview
  GameBuddy.Models -> C:\uselessStuff\GameBuddy\src\backend\GameBuddy.Models\bin\Release\net6.0\GameBuddy.Models.dll
  GameBuddy.Models -> C:\uselessStuff\GameBuddy\pub\
  GameBuddy.Data.NoSql -> C:\uselessStuff\GameBuddy\src\backend\GameBuddy.Data.NoSql\bin\Release\net6.0\GameBuddy.Data.NoSql.dll
  GameBuddy.Data -> C:\uselessStuff\GameBuddy\src\backend\GameBuddy.Data\bin\Release\net6.0\GameBuddy.Data.dll
  GameBuddy.Data.NoSql -> C:\uselessStuff\GameBuddy\pub\
  GameBuddy.Data -> C:\uselessStuff\GameBuddy\pub\
  GameBuddy.Shared -> C:\uselessStuff\GameBuddy\src\Shared\bin\Release\net6.0\GameBuddy.Shared.dll
  GameBuddy.Shared -> C:\uselessStuff\GameBuddy\pub\
  GameBuddy.Data.Ef -> C:\uselessStuff\GameBuddy\src\backend\GameBuddy.Data.Ef\bin\Release\net6.0\GameBuddy.Data.Ef.dll
  GameBuddy.Data.Ef -> C:\uselessStuff\GameBuddy\pub\
C:\uselessStuff\GameBuddy\src\Client\Pages\GameDetails.razor(151,13): warning BL0005: Component parameter 'Checked' should not be set outside of its component. [C:\uselessStuff\GameBuddy\src\Client\GameBuddy.Client.csproj]
C:\uselessStuff\GameBuddy\src\Client\Pages\GameDetails.razor(158,13): warning BL0005: Component parameter 'Checked' should not be set outside of its component. [C:\uselessStuff\GameBuddy\src\Client\GameBuddy.Client.csproj]
  GameBuddy.Client -> C:\uselessStuff\GameBuddy\src\Client\bin\Release\net6.0\GameBuddy.Client.dll
  GameBuddy.Client (Blazor output) -> C:\uselessStuff\GameBuddy\src\Client\bin\Release\net6.0\wwwroot
  Optimizing assemblies for size, which may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
  GameBuddy.Models -> C:\uselessStuff\GameBuddy\src\backend\GameBuddy.Models\bin\Release\net6.0\GameBuddy.Models.dll
  GameBuddy.Shared -> C:\uselessStuff\GameBuddy\src\Shared\bin\Release\net6.0\GameBuddy.Shared.dll
  GameBuddy.Client -> C:\uselessStuff\GameBuddy\src\Client\bin\Release\net6.0\GameBuddy.Client.dll
  GameBuddy.Client (Blazor output) -> C:\uselessStuff\GameBuddy\src\Client\bin\Release\net6.0\wwwroot
  Optimizing assemblies for size, which may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
  Compressing Blazor WebAssembly publish artifacts. This may take a while...
  GameBuddy.Client -> C:\uselessStuff\GameBuddy\pub\
  AOT'ing 104 assemblies
  [1/103] Microsoft.Extensions.Configuration.FileExtensions.dll -> Microsoft.Extensions.Configuration.FileExtensions.dll.bc
  [2/103] System.Runtime.Serialization.Xml.dll -> System.Runtime.Serialization.Xml.dll.bc
  [3/103] Blazored.Toast.dll -> Blazored.Toast.dll.bc
  [4/103] System.Collections.NonGeneric.dll -> System.Collections.NonGeneric.dll.bc
  [5/103] Microsoft.Extensions.Configuration.Json.dll -> Microsoft.Extensions.Configuration.Json.dll.bc
  [6/103] System.Memory.dll -> System.Memory.dll.bc
  [7/103] igdbScraper.dll -> igdbScraper.dll.bc
  [8/103] JetBrains.Annotations.dll -> JetBrains.Annotations.dll.bc
  [9/103] System.Reflection.Emit.Lightweight.dll -> System.Reflection.Emit.Lightweight.dll.bc
  [10/103] System.Net.Http.Json.dll -> System.Net.Http.Json.dll.bc
  [11/103] Microsoft.AspNetCore.Authorization.dll -> Microsoft.AspNetCore.Authorization.dll.bc
  [12/103] System.Collections.Specialized.dll -> System.Collections.Specialized.dll.bc
  [13/103] System.Reflection.Extensions.dll -> System.Reflection.Extensions.dll.bc
  [14/103] Microsoft.Extensions.DependencyInjection.dll -> Microsoft.Extensions.DependencyInjection.dll.bc
  [15/103] System.Diagnostics.Process.dll -> System.Diagnostics.Process.dll.bc
  [16/103] Microsoft.Extensions.DependencyInjection.Abstractions.dll -> Microsoft.Extensions.DependencyInjection.Abstractions.dll.bc
  [17/103] System.Runtime.dll -> System.Runtime.dll.bc
  [18/103] System.Reflection.Primitives.dll -> System.Reflection.Primitives.dll.bc
  [19/103] Microsoft.Extensions.FileProviders.Abstractions.dll -> Microsoft.Extensions.FileProviders.Abstractions.dll.bc
  [20/103] System.Diagnostics.TraceSource.dll -> System.Diagnostics.TraceSource.dll.bc
  [21/103] System.Collections.dll -> System.Collections.dll.bc
  [22/103] System.Security.Claims.dll -> System.Security.Claims.dll.bc
  [23/103] System.Diagnostics.Tracing.dll -> System.Diagnostics.Tracing.dll.bc
  [24/103] System.Reflection.dll -> System.Reflection.dll.bc
  [25/103] System.Resources.ResourceManager.dll -> System.Resources.ResourceManager.dll.bc
  [26/103] System.ComponentModel.Annotations.dll -> System.ComponentModel.Annotations.dll.bc
  [27/103] System.Runtime.CompilerServices.Unsafe.dll -> System.Runtime.CompilerServices.Unsafe.dll.bc
  [28/103] System.Security.Cryptography.Algorithms.dll -> System.Security.Cryptography.Algorithms.dll.bc
  [29/103] System.Net.Http.dll -> System.Net.Http.dll.bc
  [30/103] System.ComponentModel.Primitives.dll -> System.ComponentModel.Primitives.dll.bc
  [31/103] System.Security.Cryptography.Primitives.dll -> System.Security.Cryptography.Primitives.dll.bc
  [32/103] System.Runtime.Extensions.dll -> System.Runtime.Extensions.dll.bc
  [33/103] System.Net.Primitives.dll -> System.Net.Primitives.dll.bc
  [34/103] System.Drawing.Primitives.dll -> System.Drawing.Primitives.dll.bc
  [35/103] System.Security.Cryptography.X509Certificates.dll -> System.Security.Cryptography.X509Certificates.dll.bc
  [36/103] Microsoft.Extensions.FileProviders.Physical.dll -> Microsoft.Extensions.FileProviders.Physical.dll.bc
  [37/103] System.Net.Security.dll -> System.Net.Security.dll.bc
  [38/103] System.Runtime.InteropServices.RuntimeInformation.dll -> System.Runtime.InteropServices.RuntimeInformation.dll.bc
  [39/103] System.Drawing.dll -> System.Drawing.dll.bc
  [40/103] System.Text.Encoding.dll -> System.Text.Encoding.dll.bc
  [41/103] System.Runtime.Loader.dll -> System.Runtime.Loader.dll.bc
  [42/103] System.ObjectModel.dll -> System.ObjectModel.dll.bc
  [43/103] Microsoft.Extensions.FileSystemGlobbing.dll -> Microsoft.Extensions.FileSystemGlobbing.dll.bc
  [44/103] System.IO.Compression.dll -> System.IO.Compression.dll.bc
  [45/103] System.ComponentModel.TypeConverter.dll -> System.ComponentModel.TypeConverter.dll.bc
  [46/103] Microsoft.AspNetCore.Components.dll -> Microsoft.AspNetCore.Components.dll.bc
  [47/103] System.ComponentModel.dll -> System.ComponentModel.dll.bc
  [48/103] Microsoft.Extensions.Logging.dll -> Microsoft.Extensions.Logging.dll.bc
  [49/103] System.Runtime.Numerics.dll -> System.Runtime.Numerics.dll.bc
  [50/103] Microsoft.AspNetCore.Components.Forms.dll -> Microsoft.AspNetCore.Components.Forms.dll.bc
  [51/103] System.Runtime.Serialization.Formatters.dll -> System.Runtime.Serialization.Formatters.dll.bc
  [52/103] System.Console.dll -> System.Console.dll.bc
  [53/103] System.IO.FileSystem.Watcher.dll -> System.IO.FileSystem.Watcher.dll.bc
  [54/103] System.Text.Encodings.Web.dll -> System.Text.Encodings.Web.dll.bc
  [55/103] Microsoft.Extensions.Logging.Abstractions.dll -> Microsoft.Extensions.Logging.Abstractions.dll.bc
  [56/103] System.Runtime.Serialization.Primitives.dll -> System.Runtime.Serialization.Primitives.dll.bc
  [57/103] Microsoft.AspNetCore.Components.Web.dll -> Microsoft.AspNetCore.Components.Web.dll.bc
  [58/103] Newtonsoft.Json.dll -> Newtonsoft.Json.dll.bc
  [59/103] System.Threading.ThreadPool.dll -> System.Threading.ThreadPool.dll.bc
  [60/103] System.IO.FileSystem.dll -> System.IO.FileSystem.dll.bc
  [61/103] System.Threading.dll -> System.Threading.dll.bc
  [62/103] Microsoft.Extensions.Options.dll -> Microsoft.Extensions.Options.dll.bc
  [63/103] System.Web.HttpUtility.dll -> System.Web.HttpUtility.dll.bc
  [64/103] System.Xml.ReaderWriter.dll -> System.Xml.ReaderWriter.dll.bc
  [65/103] Microsoft.Extensions.Primitives.dll -> Microsoft.Extensions.Primitives.dll.bc
  [66/103] System.dll -> System.dll.bc
  [67/103] netstandard.dll -> netstandard.dll.bc
  [68/103] Microsoft.AspNetCore.Components.WebAssembly.dll -> Microsoft.AspNetCore.Components.WebAssembly.dll.bc
  [69/103] Microsoft.AspNetCore.Metadata.dll -> Microsoft.AspNetCore.Metadata.dll.bc
  [70/103] System.Private.DataContractSerialization.dll -> System.Private.DataContractSerialization.dll.bc
  [71/103] Microsoft.JSInterop.dll -> Microsoft.JSInterop.dll.bc
  [72/103] Microsoft.Extensions.Configuration.dll -> Microsoft.Extensions.Configuration.dll.bc
  [73/103] Microsoft.Extensions.Configuration.Abstractions.dll -> Microsoft.Extensions.Configuration.Abstractions.dll.bc
  [74/103] Microsoft.Extensions.Configuration.Binder.dll -> Microsoft.Extensions.Configuration.Binder.dll.bc
  [75/103] Syncfusion.Licensing.dll -> Syncfusion.Licensing.dll.bc
  [76/103] System.Private.Runtime.InteropServices.JavaScript.dll -> System.Private.Runtime.InteropServices.JavaScript.dll.bc
  [77/103] System.Data.Common.dll -> System.Data.Common.dll.bc
  [78/103] System.Diagnostics.Contracts.dll -> System.Diagnostics.Contracts.dll.bc
  [79/103] System.Private.Uri.dll -> System.Private.Uri.dll.bc
  [80/103] System.Text.Json.dll -> System.Text.Json.dll.bc
  [81/103] System.Private.Xml.Linq.dll -> System.Private.Xml.Linq.dll.bc
  [82/103] System.Diagnostics.Debug.dll -> System.Diagnostics.Debug.dll.bc
  [83/103] System.Text.RegularExpressions.dll -> System.Text.RegularExpressions.dll.bc
  [84/103] Syncfusion.PdfExport.Net.dll -> Syncfusion.PdfExport.Net.dll.bc
  [85/103] System.Threading.Tasks.dll -> System.Threading.Tasks.dll.bc
  [86/103] System.Diagnostics.DiagnosticSource.dll -> System.Diagnostics.DiagnosticSource.dll.bc
  [87/103] System.Threading.Thread.dll -> System.Threading.Thread.dll.bc
  [88/103] System.IO.Pipelines.dll -> System.IO.Pipelines.dll.bc
  [89/103] GameBuddy.Models.dll -> GameBuddy.Models.dll.bc
  [90/103] GameBuddy.Shared.dll -> GameBuddy.Shared.dll.bc
  [91/103] GameBuddy.Client.dll -> GameBuddy.Client.dll.bc
  [92/103] System.Linq.Expressions.dll -> System.Linq.Expressions.dll.bc
  [93/103] Microsoft.CSharp.dll -> Microsoft.CSharp.dll.bc
  [94/103] System.Linq.Parallel.dll -> System.Linq.Parallel.dll.bc
  [95/103] System.Buffers.dll -> System.Buffers.dll.bc
  [96/103] System.Collections.Concurrent.dll -> System.Collections.Concurrent.dll.bc
  [97/103] System.Linq.Queryable.dll -> System.Linq.Queryable.dll.bc
  [98/103] System.Private.CoreLib.dll -> System.Private.CoreLib.dll.bc
  [99/103] System.Linq.dll -> System.Linq.dll.bc
  [100/103] System.Private.Xml.dll -> System.Private.Xml.dll.bc
  [101/103] System.Reflection.Emit.ILGeneration.dll -> System.Reflection.Emit.ILGeneration.dll.bc
  [Syncfusion.Blazor.dll] Exec (with response file contents expanded) in C:\uselessStuff\GameBuddy\src\Client\obj\Release\net6.0\linked: MONO_PATH=C:\uselessStuff\GameBuddy\src\Client\obj\Release\net6.0\linked;C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Runtime.Mono.browser-wasm\6.0.0-rc.2.21480.5\runtimes\browser-wasm\native\;C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Runtime.Mono.browser-wasm\6.0.0-rc.2.21480.5\runtimes\browser-wasm\\lib\net6.0 MONO_ENV_OPTIONS= C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm\6.0.0-rc.2.21480.5\Sdk\..\tools\mono-aot-cross.exe --debug --llvm "--aot=no-opt,static,direct-icalls,deterministic,dwarfdebug,llvm-path=C:\Program Files\dotnet\packs\Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.win-x64\6.0.0-rc.2.21474.1\tools\bin\,static,llvmonly,interp,asmonly,llvm-outfile=C:\uselessStuff\GameBuddy\src\Client\obj\Release\net6.0\wasm\for-publish\Syncfusion.Blazor.dll.bc.tmp" "Syncfusion.Blazor.dll"


C:\Program Files\dotnet\packs\Microsoft.NET.Runtime.WebAssembly.Sdk\6.0.0-rc.2.21480.5\Sdk\WasmApp.Native.targets(501,5): error : Precompiling failed for C:\uselessStuff\GameBuddy\src\Client\obj\Release\net6.0\linked\Syncfusion.Blazor.dll [C:\uselessStuff\GameBuddy\src\Client\GameBuddy.Client.csproj]
C:\uselessStuff\GameBuddy\src\Server\Controllers\ScrapeController.cs(98,32): warning SYSLIB0014: 'WebClient.WebClient()' is obsolete: 'WebRequest, HttpWebRequest, ServicePoint, and WebClient are obsolete. Use HttpClient instead.' [C:\uselessStuff\GameBuddy\src\Server\GameBuddy.Server.csproj]
  GameBuddy.Server -> C:\uselessStuff\GameBuddy\src\Server\bin\Release\net6.0\GameBuddy.Server.dll
  Optimizing assemblies for size, which may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
  GameBuddy.Client -> C:\uselessStuff\GameBuddy\src\Client\bin\Release\net6.0\GameBuddy.Client.dll
  GameBuddy.Client (Blazor output) -> C:\uselessStuff\GameBuddy\src\Client\bin\Release\net6.0\wwwroot
  Optimizing assemblies for size, which may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
  Compressing Blazor WebAssembly publish artifacts. This may take a while...
  GameBuddy.Client -> C:\uselessStuff\GameBuddy\pub\
  AOT'ing 104 assemblies
  [Syncfusion.Blazor.dll] Exec (with response file contents expanded) in C:\uselessStuff\GameBuddy\src\Client\obj\Release\net6.0\linked: MONO_PATH=C:\uselessStuff\GameBuddy\src\Client\obj\Release\net6.0\linked;C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Runtime.Mono.browser-wasm\6.0.0-rc.2.21480.5\runtimes\browser-wasm\native\;C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Runtime.Mono.browser-wasm\6.0.0-rc.2.21480.5\runtimes\browser-wasm\\lib\net6.0 MONO_ENV_OPTIONS= C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm\6.0.0-rc.2.21480.5\Sdk\..\tools\mono-aot-cross.exe --debug --llvm "--aot=no-opt,static,direct-icalls,deterministic,dwarfdebug,llvm-path=C:\Program Files\dotnet\packs\Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.win-x64\6.0.0-rc.2.21474.1\tools\bin\,static,llvmonly,interp,asmonly,llvm-outfile=C:\uselessStuff\GameBuddy\src\Client\obj\Release\net6.0\wasm\for-publish\Syncfusion.Blazor.dll.bc.tmp" "Syncfusion.Blazor.dll"


C:\Program Files\dotnet\packs\Microsoft.NET.Runtime.WebAssembly.Sdk\6.0.0-rc.2.21480.5\Sdk\WasmApp.Native.targets(501,5): error : Precompiling failed for C:\uselessStuff\GameBuddy\src\Client\obj\Release\net6.0\linked\Syncfusion.Blazor.dll [C:\uselessStuff\GameBuddy\src\Client\GameBuddy.Client.csproj]

`GameBuddy.Client.csproj`
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <RunAOTCompilation>true</RunAOTCompilation>
    <NoWarn>$(NoWarn);1591</NoWarn>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Blazored.Toast" Version="3.2.2" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="5.0.11" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="5.0.11" PrivateAssets="all" />
    <PackageReference Include="System.Net.Http.Json" Version="5.0.0" />
    <PackageReference Include="Syncfusion.Blazor" Version="19.3.0.46" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\backend\GameBuddy.Models\GameBuddy.Models.csproj" />
    <ProjectReference Include="..\Shared\GameBuddy.Shared.csproj" />
  </ItemGroup>

  <ItemGroup>
    <ServiceWorker Include="wwwroot\service-worker.js" PublishedContent="wwwroot\service-worker.published.js" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="wwwroot\icons" />
    <Folder Include="wwwroot\GameCover" />
  </ItemGroup>

</Project>

Reproduction Steps

  • Set <TargetFramework>net6.0</TargetFramework> to every csproj file
  • Publish the Application using dotnet publish -c Release
  • See AOT fail

Expected behavior

Wasm project is published

Actual behavior

precompilation fails while aoting the Syncfusion.Blazor.dll

Regression?

No response

Known Workarounds

No response

Configuration

  • dotnet: 6.0.100-rc.2.21505.57
  • OS: Windows 10 x64 - Version 10.0.19043 Build 19043 | Ubuntu 21.04
  • x64

Other information

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions