Blazor Hybrid Windows publish still copies precompressed .gz and .br assets from referenced RCLs into publish/wwwroot
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 56/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- csharp
- Ambito
- build-system
Direzione di ricerca
Start by tracing GeneratePublishCompressedStaticWebAssets and _PublishStaticWebAssetsPreserveNewest in the publish targets, then compare how the existing ConvertStaticWebAssetsToMauiAssets filtering handles AssetRole="Alternative" assets. Reproduce with a MAUI Blazor Hybrid app that references an RCL and inspect its published wwwroot/_content/<Rcl>/ directory. Done means publishing with CompressionEnabled=false leaves only the uncompressed RCL assets.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
Blazor Hybrid sets <CompressionEnabled>false</CompressionEnabled> (via Microsoft.AspNetCore.Components.WebView's StaticWebAssets.Groups.targets) because WebViewManager serves static assets locally without HTTP content-encoding negotiation. However, when a Blazor Hybrid app references a Razor class library (ProjectReference), the RCL still builds with CompressionEnabled=true by default and contributes precompressed .gz and .br (AssetRole="Alternative") static web assets to the consuming app's publish manifest.
While https://github.com/dotnet/maui/pull/33917 (for https://github.com/dotnet/maui/issues/33773) filtered AssetRole='Alternative' .gz/.br items out of @(MauiAsset) in ConvertStaticWebAssetsToMauiAssets (fixing Android APKs), it did not remove them from @(StaticWebAsset) / _PublishStaticWebAssetsPreserveNewest. As a result, publishing a Blazor Hybrid app on Windows (MAUI Windows, WPF, or WinForms) still runs GeneratePublishCompressedStaticWebAssets (Brotli) for the RCL and copies redundant .gz and .br files for every RCL asset into publish/wwwroot/_content/<Rcl>/.
Discovered during validation testing in https://github.com/dotnet/aspnetcore/issues/68814#issuecomment-5536899858.
Steps to Reproduce
- Create a new MAUI Blazor Hybrid app and a Razor Class Library from templates and reference the RCL:
dotnet new maui-blazor -n MauiHybridApp dotnet new razorclasslib -n MyRcl dotnet add MauiHybridApp/MauiHybridApp.csproj reference MyRcl/MyRcl.csproj - Publish the MAUI app for Windows:
dotnet publish MauiHybridApp/MauiHybridApp.csproj -c Release -f net11.0-windows10.0.19041.0 - Inspect
MauiHybridApp/bin/Release/net11.0-windows10.0.19041.0/win-x64/publish/wwwroot/_content/MyRcl/. - Expected: Only uncompressed RCL assets (
exampleJsInterop.js,MyRcl.<hash>.bundle.scp.css,background.png) are published whenCompressionEnabled=false. - Actual: Precompressed
.gzand.brfiles (exampleJsInterop.js.gz,exampleJsInterop.js.br,MyRcl.<hash>.bundle.scp.css.gz,MyRcl.<hash>.bundle.scp.css.br) are also copied intopublish/wwwroot/_content/MyRcl/.
- Lingua principale
- C#
- Stelle
- 38.5k
- Fork
- 11.6k
- Merge medio
- 3g 1h
- PR unite (30g)
- 289
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di dotnet/aspnetcore
-
area-networking
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
dotnet/aspnetcore#70545 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area-infrastructure
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
dotnet/aspnetcore#70524 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[OpenTelemetry] Hosting replaces an Activity.DisplayName that the app set, when a route matchesApertaarea-hosting Regression
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
dotnet/aspnetcore#70516 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
[SSE] ServerSentEventsResult.WrapEvents is missing [EnumeratorCancellation], so RequestAborted never reaches the app's generator on the IAsyncEnumerable<T> overloadForse già presa @bharatprajapati-coder l’ha presa 1 giorno fa. Apertaarea-minimal
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
dotnet/aspnetcore#70419 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[Blazor] DefaultInMemoryCircuitPersistenceProvider never disposes the retention CancellationTokenSource when a persist is rejected at capacityForse già presa @Vinoth2562000 l’ha presa 1 giorno fa. Apertaarea-blazor
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
dotnet/aspnetcore#70418 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di dotnet/aspnetcore
Issue simili
-
bug emitter:client:csharp
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
microsoft/typespec#12572 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
needs-area-label
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
AWS Lambda: KeyNotFoundException drops HTTP-triggered transactions when allowAllHeaders is disabledApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
newrelic/newrelic-dotnet-agent#3949 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 87/100
I maintainer di solito rispondono entro 1 giorno
-
priority:P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100