Skip to content

[AOT] Make HybridWebView AOT safe using source generator - #35626

Merged
PureWeen merged 45 commits into
net11.0from
hybrid-web-view-aot-safe
Jun 22, 2026
Merged

[AOT] Make HybridWebView AOT safe using source generator#35626
PureWeen merged 45 commits into
net11.0from
hybrid-web-view-aot-safe

Conversation

@simonrozsival

@simonrozsival simonrozsival commented May 26, 2026

Copy link
Copy Markdown
Member

Note

Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!

Root Cause

HybridWebView's JavaScript-to-.NET invocation path used runtime reflection and dynamic JSON serialization to find target methods, deserialize parameters, invoke .NET methods, and serialize return values. That legacy model is not NativeAOT-safe and required the RuntimeFeature.IsHybridWebViewSupported feature switch so trimmed/AOT apps could disable HybridWebView support instead of hitting trim/AOT warnings.

Description of Change

This PR adds an AOT-safe JS-to-.NET dispatch path for HybridWebView using a Roslyn source generator plus C# interceptors.

The new API is:

hybridWebView.SetInvokeJavaScriptTarget(new DotNetMethods(), MyJsonContext.Default);

The source generator intercepts that direct call at compile time and generates an HybridWebViewInvoker implementation with fully typed delegates. Generated invokers use the supplied JsonSerializerContext / JsonTypeInfo<T> metadata for parameters and return values, so the AOT-safe path avoids runtime method discovery, MakeGenericMethod, Activator.CreateInstance, and dynamic JSON type resolution.

The overload body intentionally throws if it is reached. That is by design: the JsonSerializerContext overload must be intercepted. Non-interception means the analyzer was not referenced, analyzers were disabled, or the call shape was unsupported; that is a non-recoverable build/configuration bug, not a runtime fallback scenario.

There are no intentional JavaScript protocol/runtime changes in this PR. An earlier generated HybridWebView.js compiler-output-only diff was reverted.

Key Technical Details

  • Added src/Core/src/HybridWebViewSourceGen/HybridWebViewInvokeTargetGenerator.cs to generate typed invokers for direct HybridWebView.SetInvokeJavaScriptTarget<T>(T, JsonSerializerContext) calls, including inherited public methods and interface-typed invoke targets. The generator reports diagnostics for unsupported overloads, open generic targets, and invoke target types that are not accessible to generated code.
  • Changed HybridWebViewInvoker into an abstract base class that stores JavaScript invocation target/type metadata and defines the invoker contract.
  • Added [EditorBrowsable(EditorBrowsableState.Never)] Invoker as the generated-code hook. HybridWebView exposes it directly, and IHybridWebView.Invoker keeps the source-generated interceptor usable when the receiver is typed as IHybridWebView.
  • HybridWebView's shipped IHybridWebView.InvokeJavaScriptTarget / InvokeJavaScriptType members delegate to the configured invoker and throw if no invoker is configured.
  • Generated invokers and ReflectionHybridWebViewInvoker both derive from HybridWebViewInvoker; generated invokers assign Invoker = new Invoker(...) through the receiver, including when the call site is typed as IHybridWebView.
  • Packaged Microsoft.Maui.Core.HybridWebViewSourceGen.dll into Microsoft.Maui.Controls.Build.Tasks and included it from Microsoft.Maui.Controls.targets, so consuming apps get the interceptor analyzer automatically.
  • Kept the shipped legacy HybridWebView.SetInvokeJavaScriptTarget<T>(T target) public API for compatibility. It registers ReflectionHybridWebViewInvoker, preserves target metadata with DynamicallyAccessedMembers, and is marked with [RequiresUnreferencedCode] / [RequiresDynamicCode] to direct trim/AOT apps to the new JsonSerializerContext overload.
  • Marked ReflectionHybridWebViewInvoker with [RequiresUnreferencedCode] / [RequiresDynamicCode] so the legacy reflection path is visibly not the NativeAOT-safe implementation.
  • Preserved existing shipped IHybridWebView.InvokeJavaScriptTarget and IHybridWebView.InvokeJavaScriptType members to avoid public API removals.
  • Removed RuntimeFeature.IsHybridWebViewSupported and the associated feature-switch documentation entry because the supported path is now source-generated instead of runtime-disabled.

Compatibility and Migration

Existing code continues to compile:

hybridWebView.SetInvokeJavaScriptTarget(new DotNetMethods());

That legacy overload remains available for compatibility, but trimmed/NativeAOT builds will warn because it uses the reflection invoker.

For trim/AOT-safe apps, migrate to the context overload and include every parameter/return type used by JavaScript-to-.NET calls in the context:

[JsonSerializable(typeof(int))]
[JsonSerializable(typeof(string))]
[JsonSerializable(typeof(ComputationResult))]
internal partial class HybridWebViewJsonContext : JsonSerializerContext
{
}

hybridWebView.SetInvokeJavaScriptTarget(new DotNetMethods(), HybridWebViewJsonContext.Default);

What NOT to Do

  • Do not add a runtime fallback to the JsonSerializerContext overload. If it is not intercepted, the source generator/analyzer setup is broken.
  • Do not remove or demote the shipped HybridWebView.SetInvokeJavaScriptTarget<T>(T) method; it must remain public for compatibility.
  • Do not remove IHybridWebView.InvokeJavaScriptTarget or IHybridWebView.InvokeJavaScriptType; they are shipped public API.
  • Do not add Core API entries such as HybridWebViewInvoker to Controls PublicAPI files.
  • Do not forget to pack/register the HybridWebView source generator analyzer; without it, consuming apps cannot use the AOT-safe overload.
  • Do not change HybridWebView.js unless the TypeScript source/protocol intentionally changes.
  • Do not use private nested invoke target types with the AOT-safe overload; generated interceptors live outside the containing type, so targets must be internal or public.

Validation

Validated locally with targeted builds/tests:

  • dotnet build src/Core/src/Core.csproj -c Debug -f netstandard2.0
  • dotnet build src/Core/src/Core.csproj -c Debug -f netstandard2.1
  • dotnet build src/Controls/src/Core/Controls.Core.csproj -c Debug -f netstandard2.0
  • dotnet build src/Controls/src/Core/Controls.Core.csproj -c Debug -f netstandard2.1
  • dotnet build src/Controls/src/Core/Controls.Core.csproj -c Debug -f net11.0
  • dotnet build src/Controls/src/Build.Tasks/Controls.Build.Tasks.csproj -c Debug
  • dotnet test src/Controls/tests/Core.UnitTests/Controls.Core.UnitTests.csproj -c Debug -f net11.0
  • dotnet pack src/Controls/src/Build.Tasks/Controls.Build.Tasks.csproj -c Debug --no-build, then inspected the package to confirm Microsoft.Maui.Core.HybridWebViewSourceGen.dll/.pdb are included under buildTransitive/netstandard2.0.
  • dotnet test src/Controls/tests/SourceGen.UnitTests/SourceGen.UnitTests.csproj -c Debug --filter FullyQualifiedName~HybridWebViewSourceGenTests (8 focused HybridWebView source-generator tests).
  • dotnet build src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj -c Debug -f net11.0-android with local Android target override, to verify generated interceptors compile for device tests.

Issues Fixed

Fixes #34867
Fixes #35740

Partially addresses #35745 — this PR removes the HybridWebView IL2026/IL3050 (trim/AOT) warnings on HybridWebViewHandler, but the AOTTemplateTest.PublishNativeAOT* leg that issue also tracks still fails on an unrelated macios-SDK warning (apply-preserve-attribute.xml IL2009 on UIKit.UIGestureRecognizer.Callback) that this PR does not change. Intentionally not using a closing keyword so the issue stays open until that is resolved.

Related (not fixed by this PR — verify separately): #35995 and #35749 (HybridWebView Windows Controls.DeviceTests 480 s timeout — a runtime/WebView2 issue, not trim/AOT).

Supersedes #35403

@simonrozsival
simonrozsival requested a review from mattleibow May 26, 2026 15:54
@github-actions

github-actions Bot commented May 26, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 35626

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 35626"
simonrozsival and others added 10 commits May 26, 2026 18:23
- Remove HybridWebView feature switch (IsHybridWebViewSupported) entirely
- Remove class-level [RequiresUnreferencedCode]/[RequiresDynamicCode] from HybridWebViewHandler and platform classes
- Register HybridWebViewHandler and IHybridWebViewTaskManager unconditionally
- Add safe SetInvokeJavaScriptTarget<T>(T target, JsonSerializerContext) overload
- Mark legacy SetInvokeJavaScriptTarget<T>(T target) as [Obsolete]
- Build method cache at registration time with pre-resolved JsonTypeInfos
- AOT-safe invocation path: dictionary lookup -> MethodInfo.Invoke -> PropertyInfo.GetValue -> JsonSerializer.Serialize(object, JsonTypeInfo)
- Add interceptor source generator that replaces BuildMethodCache with fully typed delegates at compile time
- Update tests and sample to use the new safe overload
- Add 11 unit tests for BuildMethodCache (method filtering, error handling, delegate invocation)
- Add device tests for interceptor-vs-fallback path verification

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The handler now exclusively uses the source-generated method cache.
No suppressions, no reflection, no RUC/RDC on the invocation path.

- Remove BuildMethodCache and all reflection helpers
- Remove legacy fallback from InvokeDotNetAsync
- InvokeDotNetAsync throws if no method cache is configured
- Remove BuildMethodCache unit tests (behavior tested via device tests)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ptor

Consolidates to a single interceptor namespace shared with the binding
source generator.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…okeJavaScriptTarget

The interceptor source generator sees T at compile time — no runtime
reflection on T's members is needed. The legacy obsolete overload is
RUC/RDC territory where DAM doesn't help either.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…arget overload

The legacy overload without JsonSerializerContext still needs to build
a method cache using reflection so InvokeDotNetAsync can dispatch.
BuildMethodCacheLegacy is called lazily from InvokeDotNetAsync (internal,
RUC/RDC annotated). No RUC/RDC on user-facing API.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the dictionary-based method cache with a clean internal
IHybridWebViewInvoker interface:
- ReflectionHybridWebViewInvoker: legacy path, RUC/RDC on class
- Source-generated implementation: interceptor generates typed invoker

The handler is now trivial: invoker.InvokeMethodAsync(name, args).
Zero reflection, zero RUC/RDC, zero suppressions in the handler.

Legacy SetInvokeJavaScriptTarget<T>(T) is now an explicit interface
implementation to avoid tainting typeof(HybridWebView) with RUC.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The interceptor generates code in the consumer's assembly, which needs
to implement IHybridWebViewInvoker and set IHybridWebView.Invoker.
Both must be public. Invoker property hidden from IntelliSense via
[EditorBrowsable(Never)].

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reset all PublicAPI.Unshipped.txt files to net11.0 base and add only
the entries for our new public API surface:
- IHybridWebViewInvoker interface and its InvokeMethodAsync method
- IHybridWebView.Invoker property
- IHybridWebView.SetInvokeJavaScriptTarget<T>(T, JsonSerializerContext)
- *REMOVED* HybridWebView.SetInvokeJavaScriptTarget<T>(T) (now explicit iface)
- HybridWebView.SetInvokeJavaScriptTarget<T>(T, JsonSerializerContext)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The legacy SetInvokeJavaScriptTarget<T>(T) no longer shows an obsolete
warning to everyone. Instead, RUC/RDC messages guide trimming/AOT users
to the safe overload. CoreCLR/MonoVM users are not bothered.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use 'is not' pattern to validate target type matches expected type at
runtime instead of unsafe cast. Provides better error message if type
mismatch occurs (though this should never happen since type is known at
compile time via generic parameter T).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@simonrozsival
simonrozsival force-pushed the hybrid-web-view-aot-safe branch from 48d7755 to 37fc3cd Compare May 26, 2026 16:25
@simonrozsival
simonrozsival marked this pull request as ready for review May 26, 2026 16:32
@simonrozsival

Copy link
Copy Markdown
Member Author

@copilot fix these build failures:

##[error]src\Core\src\Core\IHybridWebViewInvoker.cs(17,17): Error RS0016: Symbol 'Microsoft.Maui.IHybridWebViewInvoker.InvokeMethodAsync(string! methodName, string![]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!' is not part of the declared public API (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Core\src\Core\IHybridWebViewInvoker.cs(17,17): error RS0016: Symbol 'Microsoft.Maui.IHybridWebViewInvoker.InvokeMethodAsync(string! methodName, string![]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!' is not part of the declared public API (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=netstandard2.0]
##[error]src\Core\src\PublicAPI\netstandard2.0\PublicAPI.Shipped.txt(982,1): Error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptTarget.get -> object?' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Core\src\PublicAPI\netstandard2.0\PublicAPI.Shipped.txt(982,1): error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptTarget.get -> object?' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=netstandard2.0]
##[error]src\Core\src\PublicAPI\netstandard2.0\PublicAPI.Shipped.txt(983,1): Error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptTarget.set -> void' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Core\src\PublicAPI\netstandard2.0\PublicAPI.Shipped.txt(983,1): error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptTarget.set -> void' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=netstandard2.0]
##[error]src\Core\src\PublicAPI\netstandard2.0\PublicAPI.Shipped.txt(984,1): Error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptType.get -> System.Type?' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Core\src\PublicAPI\netstandard2.0\PublicAPI.Shipped.txt(984,1): error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptType.get -> System.Type?' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=netstandard2.0]
##[error]src\Core\src\PublicAPI\netstandard2.0\PublicAPI.Shipped.txt(985,1): Error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptType.set -> void' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Core\src\PublicAPI\netstandard2.0\PublicAPI.Shipped.txt(985,1): error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptType.set -> void' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=netstandard2.0]
##[error]src\Core\src\PublicAPI\netstandard2.0\PublicAPI.Unshipped.txt(7,1): Error RS0017: Symbol 'Microsoft.Maui.IHybridWebViewInvoker.InvokeMethodAsync(string! methodName, string[]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Core\src\PublicAPI\netstandard2.0\PublicAPI.Unshipped.txt(7,1): error RS0017: Symbol 'Microsoft.Maui.IHybridWebViewInvoker.InvokeMethodAsync(string! methodName, string[]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=netstandard2.0]
##[error]src\Core\src\Core\IHybridWebViewInvoker.cs(17,17): Error RS0016: Symbol 'Microsoft.Maui.IHybridWebViewInvoker.InvokeMethodAsync(string! methodName, string![]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!' is not part of the declared public API (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Core\src\Core\IHybridWebViewInvoker.cs(17,17): error RS0016: Symbol 'Microsoft.Maui.IHybridWebViewInvoker.InvokeMethodAsync(string! methodName, string![]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!' is not part of the declared public API (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=netstandard2.1]
##[error]src\Core\src\PublicAPI\netstandard\PublicAPI.Shipped.txt(982,1): Error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptTarget.get -> object?' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Core\src\PublicAPI\netstandard\PublicAPI.Shipped.txt(982,1): error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptTarget.get -> object?' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=netstandard2.1]
##[error]src\Core\src\PublicAPI\netstandard\PublicAPI.Shipped.txt(983,1): Error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptTarget.set -> void' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Core\src\PublicAPI\netstandard\PublicAPI.Shipped.txt(983,1): error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptTarget.set -> void' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=netstandard2.1]
##[error]src\Core\src\PublicAPI\netstandard\PublicAPI.Shipped.txt(984,1): Error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptType.get -> System.Type?' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Core\src\PublicAPI\netstandard\PublicAPI.Shipped.txt(984,1): error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptType.get -> System.Type?' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=netstandard2.1]
##[error]src\Core\src\PublicAPI\netstandard\PublicAPI.Shipped.txt(985,1): Error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptType.set -> void' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Core\src\PublicAPI\netstandard\PublicAPI.Shipped.txt(985,1): error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.InvokeJavaScriptType.set -> void' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=netstandard2.1]
##[error]src\Core\src\PublicAPI\netstandard\PublicAPI.Unshipped.txt(7,1): Error RS0017: Symbol 'Microsoft.Maui.IHybridWebViewInvoker.InvokeMethodAsync(string! methodName, string[]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Core\src\PublicAPI\netstandard\PublicAPI.Unshipped.txt(7,1): error RS0017: Symbol 'Microsoft.Maui.IHybridWebViewInvoker.InvokeMethodAsync(string! methodName, string[]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=netstandard2.1]
  Core -> D:\a\_work\1\s\artifacts\bin\Core\Debug\net11.0\Microsoft.Maui.dll
  Core.HybridWebViewSourceGen -> D:\a\_work\1\s\artifacts\bin\Core.HybridWebViewSourceGen\Debug\netstandard2.0\Microsoft.Maui.Core.HybridWebViewSourceGen.dll
  Controls.SourceGen -> D:\a\_work\1\s\artifacts\bin\Controls.SourceGen\Debug\netstandard2.0\Microsoft.Maui.Controls.SourceGen.dll
##[error]src\Controls\src\Core\PublicAPI\net\PublicAPI.Shipped.txt(4738,1): Error RS0017: Symbol 'Microsoft.Maui.Controls.HybridWebView.SetInvokeJavaScriptTarget<T>(T! target) -> void' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Controls\src\Core\PublicAPI\net\PublicAPI.Shipped.txt(4738,1): error RS0017: Symbol 'Microsoft.Maui.Controls.HybridWebView.SetInvokeJavaScriptTarget<T>(T! target) -> void' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Controls\src\Core\Controls.Core.csproj::TargetFramework=net11.0]
##[error]src\Controls\src\Core\PublicAPI\net\PublicAPI.Unshipped.txt(2,1): Error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.Invoker.get -> Microsoft.Maui.IHybridWebViewInvoker?' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Controls\src\Core\PublicAPI\net\PublicAPI.Unshipped.txt(2,1): error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.Invoker.get -> Microsoft.Maui.IHybridWebViewInvoker?' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Controls\src\Core\Controls.Core.csproj::TargetFramework=net11.0]
##[error]src\Controls\src\Core\PublicAPI\net\PublicAPI.Unshipped.txt(3,1): Error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.Invoker.set -> void' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
D:\a\_work\1\s\src\Controls\src\Core\PublicAPI\net\PublicAPI.Unshipped.txt(3,1): error RS0017: Symbol 'Microsoft.Maui.IHybridWebView.Invoker.set -> void' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [D:\a\_work\1\s\src\Controls\src\Core\Controls.Core.csproj::TargetFramework=net11.0]

Build FAILED.

Co-authored-by: simonrozsival <374616+simonrozsival@users.noreply.github.com>

This comment has been minimized.

simonrozsival and others added 6 commits June 22, 2026 12:02
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Write the InvokeDotNet response envelope manually while preserving Result as the JSON string consumed by the existing JavaScript JSON.parse path. Restore the existing InvokeDotNet device-test expectations so they keep asserting the pre-existing JSON.stringify transport shape.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep the existing test path that reads GetLastScriptResult directly; the page already stores JSON.stringify(result) and the expected strings assert that transport shape.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Handle parameterless arity checks, escaped method identifiers, and unsafe pointer parameters in generated HybridWebView dispatch.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep explicit IHybridWebView invoke target/type getters null-safe before an invoker is configured while preserving the throwing Invoker getter.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@simonrozsival

Copy link
Copy Markdown
Member Author

/azp run maui-pr-devicetests,maui-pr-uitests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 2 pipeline(s).
@kubaflo

This comment has been minimized.

@github-actions github-actions Bot added the s/agent-review-in-progress AI review is currently running for this PR label Jun 22, 2026
@MauiBot MauiBot added s/agent-fix-win AI found a better alternative fix than the PR and removed s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates labels Jun 22, 2026

@MauiBot MauiBot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review Summary

@simonrozsival — new AI review results are available based on this last commit: 3cd60c2. To request a fresh review after new comments or commits, comment /review rerun.

Gate Inconclusive Confidence Low Platform Windows


🗂️ Review Sessions — click to expand
🚦 Gate — Test Before & After Fix

Gate Result: ⚠️ INCONCLUSIVE

Platform: WINDOWS · Base: net11.0 · Merge base: bed36265

Test Without Fix (expect FAIL) With Fix (expect PASS)
📱 HybridWebViewTests_ExceptionHandling HybridWebViewTests_ExceptionHandling 🛠️ BUILD ERROR ⚠️ ENV ERROR
📱 HybridWebViewTests_InvokeDotNet HybridWebViewTests_InvokeDotNet 🛠️ BUILD ERROR ⚠️ ENV ERROR
📱 HybridWebViewTests_InvokeJavaScriptAsync HybridWebViewTests_InvokeJavaScriptAsync 🛠️ BUILD ERROR ⚠️ ENV ERROR
📱 HybridWebViewTests_SetInvokeJavaScriptTarget HybridWebViewTests_SetInvokeJavaScriptTarget 🛠️ BUILD ERROR ⚠️ ENV ERROR
🧪 HybridWebViewSourceGenTests HybridWebViewSourceGenTests 🛠️ BUILD ERROR ✅ PASS — 69s
🧪 HybridWebViewTests HybridWebViewTests 🛠️ BUILD ERROR ✅ PASS — 32s
🔴 Without fix — 📱 HybridWebViewTests_ExceptionHandling: 🛠️ BUILD ERROR · 31s

(truncated to last 15,000 chars)

ebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(526,25): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(538,26): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,25): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(562,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(565,10): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(566,10): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(845,9): error MSB3073: The command ""C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\..\tools\net6.0\..\net472\XamlCompiler.exe" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\input.json" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\output.json"" exited with code 1. [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]

Build FAILED.

D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(4,30): error CS0234: The type or namespace name 'CSharp' does not exist in the namespace 'Microsoft.CodeAnalysis' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(5,30): error CS0234: The type or namespace name 'CSharp' does not exist in the namespace 'Microsoft.CodeAnalysis' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(10,58): error CS0246: The type or namespace name 'IIncrementalGenerator' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,2): error CS0246: The type or namespace name 'GeneratorAttribute' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,2): error CS0246: The type or namespace name 'Generator' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,12): error CS0103: The name 'LanguageNames' does not exist in the current context [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(18,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(25,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(32,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(40,25): error CS0246: The type or namespace name 'IncrementalGeneratorInitializationContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(50,59): error CS0246: The type or namespace name 'SyntaxNode' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(64,51): error CS0246: The type or namespace name 'GeneratorSyntaxContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,69): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,17): error CS0246: The type or namespace name 'IEnumerable<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,29): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,69): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,92): error CS0246: The type or namespace name 'HashSet<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,17): error CS0246: The type or namespace name 'IEnumerable<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,29): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(266,43): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(276,52): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,44): error CS0246: The type or namespace name 'GeneratorSyntaxContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,72): error CS0246: The type or namespace name 'MemberAccessExpressionSyntax' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,115): error CS0246: The type or namespace name 'InvocationExpressionSyntax' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,17): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(299,44): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(313,55): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(325,42): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(336,42): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(341,37): error CS0246: The type or namespace name 'SourceProductionContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(526,25): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(538,26): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,25): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(562,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(565,10): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(566,10): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(845,9): error MSB3073: The command ""C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\..\tools\net6.0\..\net472\XamlCompiler.exe" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\input.json" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\output.json"" exited with code 1. [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
    0 Warning(s)
    38 Error(s)

Time Elapsed 00:00:16.75

🟢 With fix — 📱 HybridWebViewTests_ExceptionHandling: ⚠️ ENV ERROR · 226s

No log file found

🔴 Without fix — 📱 HybridWebViewTests_InvokeDotNet: 🛠️ BUILD ERROR · 31s

(truncated to last 15,000 chars)

ebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(526,25): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(538,26): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,25): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(562,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(565,10): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(566,10): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(845,9): error MSB3073: The command ""C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\..\tools\net6.0\..\net472\XamlCompiler.exe" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\input.json" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\output.json"" exited with code 1. [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]

Build FAILED.

D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(4,30): error CS0234: The type or namespace name 'CSharp' does not exist in the namespace 'Microsoft.CodeAnalysis' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(5,30): error CS0234: The type or namespace name 'CSharp' does not exist in the namespace 'Microsoft.CodeAnalysis' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(10,58): error CS0246: The type or namespace name 'IIncrementalGenerator' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,2): error CS0246: The type or namespace name 'GeneratorAttribute' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,2): error CS0246: The type or namespace name 'Generator' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,12): error CS0103: The name 'LanguageNames' does not exist in the current context [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(18,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(25,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(32,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(40,25): error CS0246: The type or namespace name 'IncrementalGeneratorInitializationContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(50,59): error CS0246: The type or namespace name 'SyntaxNode' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(64,51): error CS0246: The type or namespace name 'GeneratorSyntaxContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,69): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,17): error CS0246: The type or namespace name 'IEnumerable<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,29): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,69): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,92): error CS0246: The type or namespace name 'HashSet<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,17): error CS0246: The type or namespace name 'IEnumerable<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,29): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(266,43): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(276,52): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,44): error CS0246: The type or namespace name 'GeneratorSyntaxContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,72): error CS0246: The type or namespace name 'MemberAccessExpressionSyntax' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,115): error CS0246: The type or namespace name 'InvocationExpressionSyntax' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,17): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(299,44): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(313,55): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(325,42): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(336,42): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(341,37): error CS0246: The type or namespace name 'SourceProductionContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(526,25): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(538,26): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,25): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(562,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(565,10): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(566,10): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(845,9): error MSB3073: The command ""C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\..\tools\net6.0\..\net472\XamlCompiler.exe" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\input.json" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\output.json"" exited with code 1. [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
    0 Warning(s)
    38 Error(s)

Time Elapsed 00:00:16.80

🟢 With fix — 📱 HybridWebViewTests_InvokeDotNet: ⚠️ ENV ERROR · 53s

No log file found

🔴 Without fix — 📱 HybridWebViewTests_InvokeJavaScriptAsync: 🛠️ BUILD ERROR · 29s

(truncated to last 15,000 chars)

ebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(526,25): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(538,26): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,25): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(562,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(565,10): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(566,10): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(845,9): error MSB3073: The command ""C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\..\tools\net6.0\..\net472\XamlCompiler.exe" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\input.json" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\output.json"" exited with code 1. [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]

Build FAILED.

D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(4,30): error CS0234: The type or namespace name 'CSharp' does not exist in the namespace 'Microsoft.CodeAnalysis' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(5,30): error CS0234: The type or namespace name 'CSharp' does not exist in the namespace 'Microsoft.CodeAnalysis' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(10,58): error CS0246: The type or namespace name 'IIncrementalGenerator' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,2): error CS0246: The type or namespace name 'GeneratorAttribute' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,2): error CS0246: The type or namespace name 'Generator' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,12): error CS0103: The name 'LanguageNames' does not exist in the current context [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(18,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(25,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(32,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(40,25): error CS0246: The type or namespace name 'IncrementalGeneratorInitializationContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(50,59): error CS0246: The type or namespace name 'SyntaxNode' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(64,51): error CS0246: The type or namespace name 'GeneratorSyntaxContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,69): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,17): error CS0246: The type or namespace name 'IEnumerable<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,29): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,69): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,92): error CS0246: The type or namespace name 'HashSet<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,17): error CS0246: The type or namespace name 'IEnumerable<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,29): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(266,43): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(276,52): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,44): error CS0246: The type or namespace name 'GeneratorSyntaxContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,72): error CS0246: The type or namespace name 'MemberAccessExpressionSyntax' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,115): error CS0246: The type or namespace name 'InvocationExpressionSyntax' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,17): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(299,44): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(313,55): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(325,42): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(336,42): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(341,37): error CS0246: The type or namespace name 'SourceProductionContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(526,25): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(538,26): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,25): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(562,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(565,10): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(566,10): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(845,9): error MSB3073: The command ""C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\..\tools\net6.0\..\net472\XamlCompiler.exe" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\input.json" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\output.json"" exited with code 1. [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
    0 Warning(s)
    38 Error(s)

Time Elapsed 00:00:16.17

🟢 With fix — 📱 HybridWebViewTests_InvokeJavaScriptAsync: ⚠️ ENV ERROR · 52s

No log file found

🔴 Without fix — 📱 HybridWebViewTests_SetInvokeJavaScriptTarget: 🛠️ BUILD ERROR · 29s

(truncated to last 15,000 chars)

ebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(526,25): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(538,26): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,25): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(562,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(565,10): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(566,10): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(845,9): error MSB3073: The command ""C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\..\tools\net6.0\..\net472\XamlCompiler.exe" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\input.json" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\output.json"" exited with code 1. [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]

Build FAILED.

D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(4,30): error CS0234: The type or namespace name 'CSharp' does not exist in the namespace 'Microsoft.CodeAnalysis' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(5,30): error CS0234: The type or namespace name 'CSharp' does not exist in the namespace 'Microsoft.CodeAnalysis' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(10,58): error CS0246: The type or namespace name 'IIncrementalGenerator' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,2): error CS0246: The type or namespace name 'GeneratorAttribute' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,2): error CS0246: The type or namespace name 'Generator' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,12): error CS0103: The name 'LanguageNames' does not exist in the current context [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(18,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(25,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(32,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(40,25): error CS0246: The type or namespace name 'IncrementalGeneratorInitializationContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(50,59): error CS0246: The type or namespace name 'SyntaxNode' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(64,51): error CS0246: The type or namespace name 'GeneratorSyntaxContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,69): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,17): error CS0246: The type or namespace name 'IEnumerable<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,29): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,69): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,92): error CS0246: The type or namespace name 'HashSet<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,17): error CS0246: The type or namespace name 'IEnumerable<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,29): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(266,43): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(276,52): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,44): error CS0246: The type or namespace name 'GeneratorSyntaxContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,72): error CS0246: The type or namespace name 'MemberAccessExpressionSyntax' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,115): error CS0246: The type or namespace name 'InvocationExpressionSyntax' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,17): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(299,44): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(313,55): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(325,42): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(336,42): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(341,37): error CS0246: The type or namespace name 'SourceProductionContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(526,25): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(538,26): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,25): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(562,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(565,10): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(566,10): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(845,9): error MSB3073: The command ""C:\Users\VssAdministrator\.nuget\packages\microsoft.windowsappsdk.winui\1.8.251105000\buildTransitive\..\tools\net6.0\..\net472\XamlCompiler.exe" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\input.json" "D:\a\1\s\artifacts\obj\Core\Release\net11.0-windows10.0.19041.0\\output.json"" exited with code 1. [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0-windows10.0.19041.0]
    0 Warning(s)
    38 Error(s)

Time Elapsed 00:00:16.20

🟢 With fix — 📱 HybridWebViewTests_SetInvokeJavaScriptTarget: ⚠️ ENV ERROR · 51s

No log file found

🔴 Without fix — 🧪 HybridWebViewSourceGenTests: 🛠️ BUILD ERROR · 27s
  Determining projects to restore...
  Restored D:\a\1\s\src\Graphics\src\Graphics\Graphics.csproj (in 996 ms).
  Restored D:\a\1\s\src\Controls\src\Xaml\Controls.Xaml.csproj (in 996 ms).
  Restored D:\a\1\s\src\Graphics\src\Graphics.Win2D\Graphics.Win2D.csproj (in 10 ms).
  Restored D:\a\1\s\src\Essentials\src\Essentials.csproj (in 99 ms).
  Restored D:\a\1\s\src\Core\src\Core.csproj (in 97 ms).
  Restored D:\a\1\s\src\Controls\src\Xaml.Design\Controls.Xaml.Design.csproj (in 11 ms).
  Restored D:\a\1\s\src\Controls\src\Core.Design\Controls.Core.Design.csproj (in 3 ms).
  Restored D:\a\1\s\src\Controls\src\BindingSourceGen\Controls.BindingSourceGen.csproj (in 44 ms).
  Restored D:\a\1\s\src\Controls\src\Core\Controls.Core.csproj (in 67 ms).
  4 of 13 projects are up-to-date for restore.
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Graphics -> D:\a\1\s\artifacts\bin\Graphics\Debug\net11.0\Microsoft.Maui.Graphics.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Essentials -> D:\a\1\s\artifacts\bin\Essentials\Debug\net11.0\Microsoft.Maui.Essentials.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(3,17): error CS0234: The type or namespace name 'CodeAnalysis' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(4,17): error CS0234: The type or namespace name 'CodeAnalysis' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(5,17): error CS0234: The type or namespace name 'CodeAnalysis' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(10,58): error CS0246: The type or namespace name 'IIncrementalGenerator' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,2): error CS0246: The type or namespace name 'GeneratorAttribute' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,2): error CS0246: The type or namespace name 'Generator' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,12): error CS0103: The name 'LanguageNames' does not exist in the current context [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(18,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(25,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(32,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(40,25): error CS0246: The type or namespace name 'IncrementalGeneratorInitializationContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(50,59): error CS0246: The type or namespace name 'SyntaxNode' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(64,51): error CS0246: The type or namespace name 'GeneratorSyntaxContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,69): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,17): error CS0246: The type or namespace name 'IEnumerable<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,29): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,69): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,92): error CS0246: The type or namespace name 'HashSet<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,17): error CS0246: The type or namespace name 'IEnumerable<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,29): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(266,43): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(276,52): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,44): error CS0246: The type or namespace name 'GeneratorSyntaxContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,72): error CS0246: The type or namespace name 'MemberAccessExpressionSyntax' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,115): error CS0246: The type or namespace name 'InvocationExpressionSyntax' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,17): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(299,44): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(313,55): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(325,42): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(336,42): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(341,37): error CS0246: The type or namespace name 'SourceProductionContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(526,25): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(538,26): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,25): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(562,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(565,10): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(566,10): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]

🟢 With fix — 🧪 HybridWebViewSourceGenTests: PASS ✅ · 69s
  Determining projects to restore...
  Restored D:\a\1\s\src\Graphics\src\Graphics\Graphics.csproj (in 927 ms).
  Restored D:\a\1\s\src\Core\src\Core.csproj (in 967 ms).
  Restored D:\a\1\s\src\Graphics\src\Graphics.Win2D\Graphics.Win2D.csproj (in 10 ms).
  Restored D:\a\1\s\src\Essentials\src\Essentials.csproj (in 41 ms).
  Restored D:\a\1\s\src\Core\src\HybridWebViewSourceGen\Core.HybridWebViewSourceGen.csproj (in 29 ms).
  Restored D:\a\1\s\src\Controls\src\Xaml.Design\Controls.Xaml.Design.csproj (in 13 ms).
  Restored D:\a\1\s\src\Controls\src\Xaml\Controls.Xaml.csproj (in 139 ms).
  Restored D:\a\1\s\src\Controls\src\Core.Design\Controls.Core.Design.csproj (in 4 ms).
  Restored D:\a\1\s\src\Controls\src\BindingSourceGen\Controls.BindingSourceGen.csproj (in 7 ms).
  Restored D:\a\1\s\src\Controls\src\Core\Controls.Core.csproj (in 69 ms).
  3 of 13 projects are up-to-date for restore.
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Graphics -> D:\a\1\s\artifacts\bin\Graphics\Debug\net11.0\Microsoft.Maui.Graphics.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Essentials -> D:\a\1\s\artifacts\bin\Essentials\Debug\net11.0\Microsoft.Maui.Essentials.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Core -> D:\a\1\s\artifacts\bin\Core\Debug\net11.0\Microsoft.Maui.dll
  Controls.Core.Design -> D:\a\1\s\artifacts\bin\Controls.Core.Design\Debug\net472\Microsoft.Maui.Controls.DesignTools.dll
  Controls.BindingSourceGen -> D:\a\1\s\artifacts\bin\Controls.BindingSourceGen\Debug\netstandard2.0\Microsoft.Maui.Controls.BindingSourceGen.dll
  Core.HybridWebViewSourceGen -> D:\a\1\s\artifacts\bin\Core.HybridWebViewSourceGen\Debug\netstandard2.0\Microsoft.Maui.Core.HybridWebViewSourceGen.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Controls.Core -> D:\a\1\s\artifacts\bin\Controls.Core\Debug\net11.0\Microsoft.Maui.Controls.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Microsoft.AspNetCore.Components.WebView.Maui -> D:\a\1\s\artifacts\bin\Microsoft.AspNetCore.Components.WebView.Maui\Debug\net11.0\Microsoft.AspNetCore.Components.WebView.Maui.dll
  Controls.Xaml.Design -> D:\a\1\s\artifacts\bin\Controls.Xaml.Design\Debug\net472\Microsoft.Maui.Controls.Xaml.DesignTools.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Controls.Xaml -> D:\a\1\s\artifacts\bin\Controls.Xaml\Debug\net11.0\Microsoft.Maui.Controls.Xaml.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Controls.SourceGen -> D:\a\1\s\artifacts\bin\Controls.SourceGen\Debug\netstandard2.0\Microsoft.Maui.Controls.SourceGen.dll
  SourceGen.UnitTests -> D:\a\1\s\artifacts\bin\SourceGen.UnitTests\Debug\net11.0\Microsoft.Maui.Controls.SourceGen.UnitTests.dll
Test run for D:\a\1\s\artifacts\bin\SourceGen.UnitTests\Debug\net11.0\Microsoft.Maui.Controls.SourceGen.UnitTests.dll (.NETCoreApp,Version=v11.0)
A total of 1 test files matched the specified pattern.
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 11.0.0-preview.5.26256.105)
[xUnit.net 00:00:00.15]   Discovering: Microsoft.Maui.Controls.SourceGen.UnitTests
[xUnit.net 00:00:00.26]   Discovered:  Microsoft.Maui.Controls.SourceGen.UnitTests
[xUnit.net 00:00:00.27]   Starting:    Microsoft.Maui.Controls.SourceGen.UnitTests
  Passed Microsoft.Maui.Controls.Xaml.UnitTests.SourceGen.HybridWebViewSourceGenTests.GeneratesDispatchForInheritedPublicMethods [2 s]
  Passed Microsoft.Maui.Controls.Xaml.UnitTests.SourceGen.HybridWebViewSourceGenTests.ReportsDiagnosticForPrivateNestedInvokeTarget [189 ms]
  Passed Microsoft.Maui.Controls.Xaml.UnitTests.SourceGen.HybridWebViewSourceGenTests.EscapesKeywordMethodIdentifiers [231 ms]
  Passed Microsoft.Maui.Controls.Xaml.UnitTests.SourceGen.HybridWebViewSourceGenTests.ReturnSerializationDoesNotCollideWithResultParameter [224 ms]
  Passed Microsoft.Maui.Controls.Xaml.UnitTests.SourceGen.HybridWebViewSourceGenTests.GeneratesArgumentCountCheckForParameterlessMethods [248 ms]
  Passed Microsoft.Maui.Controls.Xaml.UnitTests.SourceGen.HybridWebViewSourceGenTests.GeneratesDispatchForInterfaceTargetMethods [281 ms]
[xUnit.net 00:00:05.05]   Finished:    Microsoft.Maui.Controls.SourceGen.UnitTests
  Passed Microsoft.Maui.Controls.Xaml.UnitTests.SourceGen.HybridWebViewSourceGenTests.ReportsDiagnosticForOverloadsBeforeUnsupportedMethodsAreFiltered [121 ms]
  Passed Microsoft.Maui.Controls.Xaml.UnitTests.SourceGen.HybridWebViewSourceGenTests.SkipsMethodsWithUnsafePointerParameters [240 ms]
  Passed Microsoft.Maui.Controls.Xaml.UnitTests.SourceGen.HybridWebViewSourceGenTests.ReportsDiagnosticForOpenGenericInvokeTarget [105 ms]
  Passed Microsoft.Maui.Controls.Xaml.UnitTests.SourceGen.HybridWebViewSourceGenTests.GeneratesInterceptorWhenJsonSerializerContextDefaultIsSourceGenerated [207 ms]
  Passed Microsoft.Maui.Controls.Xaml.UnitTests.SourceGen.HybridWebViewSourceGenTests.InterfaceReceiverAssignsInvokerThroughInterface [213 ms]

Test Run Successful.
Total tests: 11
     Passed: 11
 Total time: 5.8143 Seconds

🔴 Without fix — 🧪 HybridWebViewTests: 🛠️ BUILD ERROR · 28s
  Determining projects to restore...
  Restored D:\a\1\s\src\Controls\Maps\src\Controls.Maps.csproj (in 1.21 sec).
  Restored D:\a\1\s\src\Core\maps\src\Maps.csproj (in 1.27 sec).
  11 of 13 projects are up-to-date for restore.
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Graphics -> D:\a\1\s\artifacts\bin\Graphics\Debug\net11.0\Microsoft.Maui.Graphics.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Essentials -> D:\a\1\s\artifacts\bin\Essentials\Debug\net11.0\Microsoft.Maui.Essentials.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(3,17): error CS0234: The type or namespace name 'CodeAnalysis' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(4,17): error CS0234: The type or namespace name 'CodeAnalysis' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(5,17): error CS0234: The type or namespace name 'CodeAnalysis' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(10,58): error CS0246: The type or namespace name 'IIncrementalGenerator' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,2): error CS0246: The type or namespace name 'GeneratorAttribute' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,2): error CS0246: The type or namespace name 'Generator' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(9,12): error CS0103: The name 'LanguageNames' does not exist in the current context [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(18,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(25,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(32,26): error CS0246: The type or namespace name 'DiagnosticDescriptor' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(40,25): error CS0246: The type or namespace name 'IncrementalGeneratorInitializationContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(50,59): error CS0246: The type or namespace name 'SyntaxNode' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(64,51): error CS0246: The type or namespace name 'GeneratorSyntaxContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,69): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,17): error CS0246: The type or namespace name 'IEnumerable<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(223,29): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,69): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,92): error CS0246: The type or namespace name 'HashSet<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,17): error CS0246: The type or namespace name 'IEnumerable<>' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(248,29): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(266,43): error CS0246: The type or namespace name 'IMethodSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(276,52): error CS0246: The type or namespace name 'INamedTypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,44): error CS0246: The type or namespace name 'GeneratorSyntaxContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,72): error CS0246: The type or namespace name 'MemberAccessExpressionSyntax' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,115): error CS0246: The type or namespace name 'InvocationExpressionSyntax' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(287,17): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(299,44): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(313,55): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(325,42): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(336,42): error CS0246: The type or namespace name 'ITypeSymbol' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(341,37): error CS0246: The type or namespace name 'SourceProductionContext' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(526,25): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(538,26): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,25): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(550,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(562,57): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(565,10): error CS0246: The type or namespace name 'InterceptableLocation' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]
D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(566,10): error CS0246: The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\src\Core\src\Core.csproj::TargetFramework=net11.0]

🟢 With fix — 🧪 HybridWebViewTests: PASS ✅ · 32s
  Determining projects to restore...
  Restored D:\a\1\s\src\Core\maps\src\Maps.csproj (in 1.18 sec).
  Restored D:\a\1\s\src\Controls\Maps\src\Controls.Maps.csproj (in 1.1 sec).
  12 of 14 projects are up-to-date for restore.
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Graphics -> D:\a\1\s\artifacts\bin\Graphics\Debug\net11.0\Microsoft.Maui.Graphics.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Essentials -> D:\a\1\s\artifacts\bin\Essentials\Debug\net11.0\Microsoft.Maui.Essentials.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Core -> D:\a\1\s\artifacts\bin\Core\Debug\net11.0\Microsoft.Maui.dll
  Controls.Core.Design -> D:\a\1\s\artifacts\bin\Controls.Core.Design\Debug\net472\Microsoft.Maui.Controls.DesignTools.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Controls.BindingSourceGen -> D:\a\1\s\artifacts\bin\Controls.BindingSourceGen\Debug\netstandard2.0\Microsoft.Maui.Controls.BindingSourceGen.dll
  Maps -> D:\a\1\s\artifacts\bin\Maps\Debug\net11.0\Microsoft.Maui.Maps.dll
  Core.HybridWebViewSourceGen -> D:\a\1\s\artifacts\bin\Core.HybridWebViewSourceGen\Debug\netstandard2.0\Microsoft.Maui.Core.HybridWebViewSourceGen.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Controls.Core -> D:\a\1\s\artifacts\bin\Controls.Core\Debug\net11.0\Microsoft.Maui.Controls.dll
  Controls.Xaml.Design -> D:\a\1\s\artifacts\bin\Controls.Xaml.Design\Debug\net472\Microsoft.Maui.Controls.Xaml.DesignTools.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Controls.Maps -> D:\a\1\s\artifacts\bin\Controls.Maps\Debug\net11.0\Microsoft.Maui.Controls.Maps.dll
  ##vso[build.updatebuildnumber]11.0.0-ci+azdo.14446238
  Controls.Xaml -> D:\a\1\s\artifacts\bin\Controls.Xaml\Debug\net11.0\Microsoft.Maui.Controls.Xaml.dll
  TestUtils -> D:\a\1\s\artifacts\bin\TestUtils\Debug\netstandard2.0\Microsoft.Maui.TestUtils.dll
  Controls.Core.UnitTests -> D:\a\1\s\artifacts\bin\Controls.Core.UnitTests\Debug\net11.0\Microsoft.Maui.Controls.Core.UnitTests.dll
Test run for D:\a\1\s\artifacts\bin\Controls.Core.UnitTests\Debug\net11.0\Microsoft.Maui.Controls.Core.UnitTests.dll (.NETCoreApp,Version=v11.0)
A total of 1 test files matched the specified pattern.
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 11.0.0-preview.5.26256.105)
[xUnit.net 00:00:00.24]   Discovering: Microsoft.Maui.Controls.Core.UnitTests
[xUnit.net 00:00:01.74]   Discovered:  Microsoft.Maui.Controls.Core.UnitTests
[xUnit.net 00:00:01.76]   Starting:    Microsoft.Maui.Controls.Core.UnitTests
[xUnit.net 00:00:01.89]   Finished:    Microsoft.Maui.Controls.Core.UnitTests
  Passed InvokerGetterThrowsBeforeTargetIsSet [13 ms]
  Passed ExplicitInterfaceInvokeTargetPropertiesReturnNullBeforeTargetIsSet [< 1 ms]

Test Run Successful.
Total tests: 2
     Passed: 2
 Total time: 2.6260 Seconds

⚠️ Failure Details (10 tests)
  • 🛠️ HybridWebViewTests_ExceptionHandling without fix: build failed before tests could run
    • D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(4,30): error CS0234: The type or namespace name 'CSharp' does not exist in the namespace 'Microsoft.CodeAnalysis' (ar...
  • 🛠️ HybridWebViewTests_InvokeDotNet without fix: build failed before tests could run
    • D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(4,30): error CS0234: The type or namespace name 'CSharp' does not exist in the namespace 'Microsoft.CodeAnalysis' (ar...
  • 🛠️ HybridWebViewTests_InvokeJavaScriptAsync without fix: build failed before tests could run
    • D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(4,30): error CS0234: The type or namespace name 'CSharp' does not exist in the namespace 'Microsoft.CodeAnalysis' (ar...
  • 🛠️ HybridWebViewTests_SetInvokeJavaScriptTarget without fix: build failed before tests could run
    • D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(4,30): error CS0234: The type or namespace name 'CSharp' does not exist in the namespace 'Microsoft.CodeAnalysis' (ar...
  • 🛠️ HybridWebViewSourceGenTests without fix: build failed before tests could run
    • D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(3,17): error CS0234: The type or namespace name 'CodeAnalysis' does not exist in the namespace 'Microsoft' (are you m...
  • 🛠️ HybridWebViewTests without fix: build failed before tests could run
    • D:\a\1\s\src\Core\src\HybridWebViewSourceGen\HybridWebViewInvokeTargetGenerator.cs(3,17): error CS0234: The type or namespace name 'CodeAnalysis' does not exist in the namespace 'Microsoft' (are you m...
  • ⚠️ HybridWebViewTests_ExceptionHandling with fix: Test filter 'HybridWebViewTests_ExceptionHandling' matched 0 Windows device test categories. Available categories: Dispatcher, Border, BoxView, Button, CarouselView, CheckBox, CollectionView, Compatibility, ContentView, MenuFlyout, DatePicker, Editor, Entry, FlyoutPage, Label, Frame, HybridWebView, Image, Layout, FlexLayout, ListView, Modal, NavigationPage, Page, Path, Picker, Behavior, RadioButton, RefreshView, ScrollView, SearchBar, Shape, Shell, TabbedPage, TemplatedView, Toolbar, View, VisualElement, VisualElementTree, WebView, Window, Mapper, Xaml, WindowOverlay, Memory, Lifecycle
  • ⚠️ HybridWebViewTests_InvokeDotNet with fix: Test filter 'HybridWebViewTests_InvokeDotNet' matched 0 Windows device test categories. Available categories: Dispatcher, Border, BoxView, Button, CarouselView, CheckBox, CollectionView, Compatibility, ContentView, MenuFlyout, DatePicker, Editor, Entry, FlyoutPage, Label, Frame, HybridWebView, Image, Layout, FlexLayout, ListView, Modal, NavigationPage, Page, Path, Picker, Behavior, RadioButton, RefreshView, ScrollView, SearchBar, Shape, Shell, TabbedPage, TemplatedView, Toolbar, View, VisualElement, VisualElementTree, WebView, Window, Mapper, Xaml, WindowOverlay, Memory, Lifecycle
  • ⚠️ HybridWebViewTests_InvokeJavaScriptAsync with fix: Test filter 'HybridWebViewTests_InvokeJavaScriptAsync' matched 0 Windows device test categories. Available categories: Dispatcher, Border, BoxView, Button, CarouselView, CheckBox, CollectionView, Compatibility, ContentView, MenuFlyout, DatePicker, Editor, Entry, FlyoutPage, Label, Frame, HybridWebView, Image, Layout, FlexLayout, ListView, Modal, NavigationPage, Page, Path, Picker, Behavior, RadioButton, RefreshView, ScrollView, SearchBar, Shape, Shell, TabbedPage, TemplatedView, Toolbar, View, VisualElement, VisualElementTree, WebView, Window, Mapper, Xaml, WindowOverlay, Memory, Lifecycle
  • ⚠️ HybridWebViewTests_SetInvokeJavaScriptTarget with fix: Test filter 'HybridWebViewTests_SetInvokeJavaScriptTarget' matched 0 Windows device test categories. Available categories: Dispatcher, Border, BoxView, Button, CarouselView, CheckBox, CollectionView, Compatibility, ContentView, MenuFlyout, DatePicker, Editor, Entry, FlyoutPage, Label, Frame, HybridWebView, Image, Layout, FlexLayout, ListView, Modal, NavigationPage, Page, Path, Picker, Behavior, RadioButton, RefreshView, ScrollView, SearchBar, Shape, Shell, TabbedPage, TemplatedView, Toolbar, View, VisualElement, VisualElementTree, WebView, Window, Mapper, Xaml, WindowOverlay, Memory, Lifecycle
📁 Fix files reverted (40 files)
  • Microsoft.Maui-dev.sln
  • Microsoft.Maui-mac.slnf
  • Microsoft.Maui-windows.slnf
  • Microsoft.Maui.BuildTasks.slnf
  • Microsoft.Maui.sln
  • eng/Microsoft.Maui.Packages-mac.slnf
  • eng/Microsoft.Maui.Packages.slnf
  • src/Controls/samples/Controls.Sample/Pages/Controls/HybridWebViewPage.xaml.cs
  • src/Controls/src/Build.Tasks/Controls.Build.Tasks.csproj
  • src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.targets
  • src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/maui-blazor.aotprofile.txt
  • src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/maui-sc.aotprofile.txt
  • src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/maui.aotprofile.txt
  • src/Controls/src/Core/Controls.Core.csproj
  • src/Controls/src/Core/Hosting/AppHostBuilderExtensions.cs
  • src/Controls/src/Core/HybridWebView/HybridWebView.cs
  • src/Controls/src/Core/PublicAPI/net-android/PublicAPI.Unshipped.txt
  • src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt
  • src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
  • src/Controls/src/Core/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
  • src/Controls/src/Core/PublicAPI/net-windows/PublicAPI.Unshipped.txt
  • src/Controls/src/Core/PublicAPI/net/PublicAPI.Unshipped.txt
  • src/Controls/src/Core/PublicAPI/netstandard/PublicAPI.Unshipped.txt
  • src/Core/src/Core.csproj
  • src/Core/src/Core/IHybridWebView.cs
  • src/Core/src/Handlers/HybridWebView/HybridWebViewHandler.Windows.cs
  • src/Core/src/Handlers/HybridWebView/HybridWebViewHandler.cs
  • src/Core/src/Handlers/HybridWebView/HybridWebViewHandler.iOS.cs
  • src/Core/src/Platform/Android/MauiHybridWebView.cs
  • src/Core/src/Platform/Android/MauiHybridWebViewClient.cs
  • src/Core/src/Platform/Windows/MauiHybridWebView.cs
  • src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt
  • src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
  • src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
  • src/Core/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
  • src/Core/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt
  • src/Core/src/PublicAPI/net/PublicAPI.Unshipped.txt
  • src/Core/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt
  • src/Core/src/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt
  • src/Core/src/RuntimeFeature.cs

New files (not reverted):

  • src/Core/src/Core/HybridWebViewInvoker.cs
  • src/Core/src/Handlers/HybridWebView/ReflectionHybridWebViewInvoker.cs
  • src/Core/src/HybridWebViewSourceGen/Core.HybridWebViewSourceGen.csproj
  • src/Core/src/HybridWebViewSourceGen/HybridWebViewInvokeTargetGenerator.cs

📱 UI Tests — ViewBaseTests,WebView

Detected UI test categories: ViewBaseTests,WebView

Deep UI tests — 0 passed; 2 category setup failures (161 impacted tests marked failed by TRX) across 2 categories on platform-pool agent (replaces in-process counts above).

🧪 UI Test Execution Results (deep, platform pool)

Category Tests Snapshot diffs
ViewBaseTests 0/115 (setup failed; 115 marked failed)
WebView 0/46 (setup failed; 46 marked failed)
⚠️ ViewBaseTests — fixture setup failed for 115 tests

NUnit reported a OneTimeSetUp/fixture setup failure before test bodies ran; the TRX marked each affected test failed.

Multiple setup failure signatures were present; showing the first one. See the TRX artifact for all details.

OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: The system cannot find the file specified
at OpenQA.Selenium.WebDriver.UnpackAndThrowOnError(Response errorResponse, String commandToExecute)
   at OpenQA.Selenium.WebDriver.ExecuteAsync(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.WebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Appium.AppiumDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.WebDriver.StartSession(ICapabilities capabilities)
   at OpenQA.Selenium.WebDriver..ctor(ICommandExecutor executor, ICapabilities capabilities)
   at OpenQA.Selenium.Appium.AppiumDriver..ctor(ICommandExecutor commandExecutor, ICapabilities appiumOptions)
   at OpenQA.Selenium.Appium.AppiumDriver..ctor(Uri remoteAddress, ICapabilities appiumOptions, TimeSpan commandTimeout, AppiumClientConfig clientConfig)
   at OpenQA.Selenium.Appium.AppiumDriver..ctor(Uri remoteAddress, ICapabilities appiumOptions, TimeSpan commandTimeout)
   at OpenQA.Selenium.Appium.AppiumDriver..ctor(Uri remoteAddress, ICapabilities appiumOptions)
   at OpenQA.Selenium.Appium.Windows.WindowsDriver..ctor(Uri remoteAddress, AppiumOptions AppiumOptions)
   at UITest.Appium.AppiumWindowsApp..ctor(Uri remoteAddress, IConfig config) in /_/src/TestUtils/src/UITest.Appium/AppiumWindowsApp.cs:line 11
   at UI
...
⚠️ WebView — fixture setup failed for 46 tests

NUnit reported a OneTimeSetUp/fixture setup failure before test bodies ran; the TRX marked each affected test failed.

Multiple setup failure signatures were present; showing the first one. See the TRX artifact for all details.

OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: The system cannot find the file specified
at OpenQA.Selenium.WebDriver.UnpackAndThrowOnError(Response errorResponse, String commandToExecute)
   at OpenQA.Selenium.WebDriver.ExecuteAsync(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.WebDriver.StartSession(ICapabilities capabilities)
   at OpenQA.Selenium.WebDriver..ctor(ICommandExecutor executor, ICapabilities capabilities)
   at OpenQA.Selenium.Appium.AppiumDriver..ctor(ICommandExecutor commandExecutor, ICapabilities appiumOptions)
   at OpenQA.Selenium.Appium.AppiumDriver..ctor(Uri remoteAddress, ICapabilities appiumOptions)
   at UITest.Appium.AppiumWindowsApp..ctor(Uri remoteAddress, IConfig config) in /_/src/TestUtils/src/UITest.Appium/AppiumWindowsApp.cs:line 11
   at UITest.Appium.AppiumServerContext.CreateUIClientContext(IConfig config) in /_/src/TestUtils/src/UITest.Appium/AppiumServerContext.cs:line 41
   at UITest.Appium.NUnit.UITestContextBase.InitialSetup(IServerContext context, Boolean reset) in /_/src/TestUtils/src/UITest.NUnit/UITestContextBase.cs:line 77
   at UITest.Appium.NUnit.UITestContextBase.InitialSetup(IServerContext context) in /_/src/TestUtils/src/UITest.NUnit/UITestContextBase.cs:line 55
   at UITest.Appium.NUnit.UITestBase.OneTimeSetup() in /_/src/TestUtils/src/UITest.NUnit/UITestBase.cs:line 215
   at System.RuntimeMet
...

📎 Download drop-deep-uitests artifact (TRX + snapshot diffs)


📋 Pre-Flight — Context & Validation

Issue: #34867 - AOT integration tests fail: unexpected IL3050 warnings for HybridWebViewHandler; also fixes #35745 and #35740
PR: #35626 - [AOT] Make HybridWebView AOT safe using source generator
Platforms Affected: android, ios, maccatalyst, windows
Files Changed: 46 implementation, 7 test

Key Findings

  • PR replaces HybridWebView's reflection-only JS-to-.NET dispatch with a source-generator/interceptor path using JsonSerializerContext metadata to avoid NativeAOT/trim warnings.
  • Public API and analyzer packaging are part of the fix: a generated invoker hook is exposed, source generator assembly is packed through Controls.Build.Tasks, and public API files are updated.
  • Gate was pre-run and inconclusive due to build/environment failure; this review did not recreate or overwrite gate/content.md.
  • gh was unauthenticated in this environment, so PR metadata/comments were read through public API/web fetch where possible and CI checks were not queried with gh.
  • Targeted source-generator regression surface on Windows passed on the PR branch: HybridWebViewSourceGenTests 11/11.

Code Review Summary

Verdict: NEEDS_CHANGES
Confidence: low
Errors: 2 | Warnings: 0 | Suggestions: 0

Key code review findings:

  • src/Controls/samples/Controls.Sample/Pages/Controls/HybridWebViewPage.xaml.cs:17 selects the source-generated overload while DotNetMethods is a private nested type; the generator rejects private nested targets with MAUIHWVSG003.
  • src/Core/src/Core/IHybridWebView.cs:29 adds required members to a shipped public interface, creating a source/binary compatibility risk for third-party IHybridWebView implementers.

Fix Candidates

# Source Approach Test Result Files Changed Notes
PR PR #35626 Source generator/interceptors plus public IHybridWebView.Invoker hook and JsonSerializerContext overload ⚠️ INCONCLUSIVE (Gate pre-run build/environment error) 53 files Original PR; targeted source-generator tests pass, but code review found sample accessibility and public interface compatibility issues

🔬 Code Review — Deep Analysis

Code Review — PR #35626

Independent Assessment

What this changes: Reworks HybridWebView JS-to-.NET invocation so the old reflection path is marked unsafe for trimming/AOT, adds a JsonSerializerContext overload intended to be intercepted by a new source generator, packages that analyzer through MAUI targets, and updates HybridWebView tests/sample usage.
Inferred motivation: Make HybridWebView invocation usable in trimmed/NativeAOT scenarios by generating typed dispatch and serializer metadata access instead of relying on reflection and dynamic System.Text.Json.

Reconciliation with PR Narrative

Author claims: Not available. Per the request, I used local repository context only, did not use gh, and did not read PR narrative/comments.
Agreement/disagreement: Not applicable; assessment is code-only.

Prior Review Reconciliation

Prior review surfaces were not queried because gh is unauthenticated and the request explicitly forbids gh/GitHub access. No prior ❌ Error findings could be reconciled from local context.

Blast Radius Assessment

  • Runs for all instances: Partly. The analyzer is enabled by default for MAUI Controls consumers when analyzers are not disabled; the IHybridWebView interface change affects all implementers.
  • Startup impact: Low direct startup impact, but build-time analyzer/interceptor failures can block apps/samples before runtime.
  • Static/shared state: No new app-wide static mutable state observed; the change does add public interface/API surface and build-transitive analyzer plumbing.

CI Status

  • Required-check result: undetermined
  • Classification: undetermined — gh pr checks --required was not run because gh is unauthenticated and the user explicitly prohibited gh.
  • Action taken: Capped confidence to low and did not use LGTM.

Findings

❌ Error — The new source-generated overload breaks the updated sample

src/Controls/samples/Controls.Sample/Pages/Controls/HybridWebViewPage.xaml.cs:17 now calls SetInvokeJavaScriptTarget<DotNetMethods>(..., SampleInvokeJsContext.Default), which selects the source-generated/intercepted overload. The generator explicitly rejects private target types (MAUIHWVSG003) and has a unit test for that behavior (ReportsDiagnosticForPrivateNestedInvokeTarget). In this file, DotNetMethods remains a private nested class at line 140, so the sample should fail compilation as soon as the HybridWebView source generator runs. Make the target accessible to generated code (for example internal) or keep this sample on the legacy overload.

❌ Error — Public interface additions are a breaking API change

src/Core/src/Core/IHybridWebView.cs:29 adds a required Invoker property to the already-shipped public IHybridWebView interface, and line 55 adds another required method. PublicAPI.Shipped.txt already contains IHybridWebView and its prior members, so third-party implementations compiled/source-built against the existing interface now have to implement these new members even if they do not use the AOT/source-generated path. Prefer putting the invoker hook on the concrete HybridWebView, an internal interface, a versioned/derived interface, or another non-breaking extension point instead of mutating the shipped interface.

Failure-Mode Probing

  • What happens if a consumer/sample uses the new overload with a private nested target? The generator reports MAUIHWVSG003 and does not emit the interceptor, turning the updated call into a build failure (or runtime throw if interception is unavailable).
  • What happens to custom IHybridWebView implementers? They must add Invoker plus the new overload; otherwise source builds fail and precompiled implementers risk interface mismatch at runtime.
  • What happens if the analyzer is disabled or not imported? The new JsonSerializerContext overload body throws InvalidOperationException, so calls to that overload are intentionally non-functional without interception.

Verdict: NEEDS_CHANGES

Confidence: low (code findings are concrete, but CI/prior reviews/PR narrative were unavailable by instruction and required-check status is undetermined).
Summary: The AOT/source-generator direction is reasonable, but the current diff appears to introduce a sample build break and a shipped-interface breaking change. These should be addressed before merge.


🛠️ Fix — Analysis & Comparison

Fix Candidates

# Source Approach Test Result Files Changed Notes
1 try-fix Static ConditionalWeakTable<object, HybridWebViewInvoker> registry; generated interceptors register invokers without adding required members to shipped IHybridWebView; concrete HybridWebView owns the AOT-safe overload ✅ PASS (HybridWebViewSourceGenTests 11/11) 6 source/test areas plus PublicAPI entries Materially different from PR's interface-property hook; avoids public-interface breaking change and avoids sample MAUIHWVSG003 by keeping private sample target off the source-generated overload
PR PR #35626 Source generator/interceptors with public IHybridWebView.Invoker and public interface overload ⚠️ INCONCLUSIVE (Gate pre-run build/environment error) 53 files Original PR; targeted source-generator tests passed, but code review found two error-level issues

Cross-Pollination

Model Round New Ideas? Details
claude-opus-4.6 1 Yes Proposed static weak registry side-channel instead of mutating shipped IHybridWebView
claude-opus-4.7 2 Not queried Stopped because Candidate #1 passed targeted regression tests and is demonstrably better on the reviewed compatibility issue
gpt-5.3-codex 2 Not queried Stopped because Candidate #1 passed targeted regression tests and is demonstrably better on the reviewed compatibility issue
gpt-5.5 2 Not queried Stopped because Candidate #1 passed targeted regression tests and is demonstrably better on the reviewed compatibility issue

Exhausted: No
Selected Fix: Candidate #1 — It preserves the AOT-safe generated invoker path while removing the PR's largest compatibility risk: required additions to a shipped public interface. It also avoids the sample's private nested target diagnostic by not converting that sample call to the source-generated overload.


📝 Recommended PR Title & Description

Assessment: ✏️ Recommend updating — the winning fix keeps the source-generator/AOT-safe direction but removes the PR description's public IHybridWebView.Invoker/interface-overload model and uses a registry-based generated invoker hook instead.

Recommended title

[AOT] HybridWebView: Use source-generated invokers for JS-to-.NET dispatch

Recommended description

### Root Cause

HybridWebView's JavaScript-to-.NET invocation path used runtime reflection and dynamic JSON serialization to find target methods, deserialize parameters, invoke .NET methods, and serialize return values. That legacy model is not NativeAOT-safe and required the `RuntimeFeature.IsHybridWebViewSupported` feature switch so trimmed/AOT apps could disable HybridWebView support instead of hitting trim/AOT warnings.

### Description of Change

This PR adds an AOT-safe JS-to-.NET dispatch path for HybridWebView using a Roslyn source generator plus C# interceptors.

The new API is:

```csharp
hybridWebView.SetInvokeJavaScriptTarget(new DotNetMethods(), MyJsonContext.Default);

The source generator intercepts that direct call at compile time and generates a HybridWebViewInvoker implementation with fully typed delegates. Generated invokers use the supplied JsonSerializerContext / JsonTypeInfo<T> metadata for parameters and return values, so the AOT-safe path avoids runtime method discovery, MakeGenericMethod, Activator.CreateInstance, and dynamic JSON type resolution.

The overload body intentionally throws if it is reached. That is by design: the JsonSerializerContext overload must be intercepted. Non-interception means the analyzer was not referenced, analyzers were disabled, or the call shape was unsupported; that is a non-recoverable build/configuration bug, not a runtime fallback scenario.

There are no intentional JavaScript protocol/runtime changes in this PR. An earlier generated HybridWebView.js compiler-output-only diff was reverted.

Key Technical Details

  • Added src/Core/src/HybridWebViewSourceGen/HybridWebViewInvokeTargetGenerator.cs to generate typed invokers for direct HybridWebView.SetInvokeJavaScriptTarget<T>(T, JsonSerializerContext) calls, including inherited public methods and interface-typed invoke targets. The generator reports diagnostics for unsupported overloads, open generic targets, and invoke target types that are not accessible to generated code.
  • Changed HybridWebViewInvoker into an abstract base class that stores JavaScript invocation target/type metadata and defines the invoker contract.
  • Added the AOT-safe JsonSerializerContext overload on concrete Microsoft.Maui.Controls.HybridWebView only, avoiding new required members on the shipped IHybridWebView public interface.
  • Generated invokers are registered through an internal weak registry keyed by the HybridWebView instance. HybridWebViewHandler checks that registry for the AOT-safe invoker before falling back to the legacy reflection invoker.
  • Generated invokers and ReflectionHybridWebViewInvoker both derive from HybridWebViewInvoker.
  • Packaged Microsoft.Maui.Core.HybridWebViewSourceGen.dll into Microsoft.Maui.Controls.Build.Tasks and included it from Microsoft.Maui.Controls.targets, so consuming apps get the interceptor analyzer automatically.
  • Kept the shipped legacy HybridWebView.SetInvokeJavaScriptTarget<T>(T target) public API for compatibility. It registers ReflectionHybridWebViewInvoker, preserves target metadata with DynamicallyAccessedMembers, and is marked with [RequiresUnreferencedCode] / [RequiresDynamicCode] to direct trim/AOT apps to the new JsonSerializerContext overload.
  • Marked ReflectionHybridWebViewInvoker with [RequiresUnreferencedCode] / [RequiresDynamicCode] so the legacy reflection path is visibly not the NativeAOT-safe implementation.
  • Kept samples that use private invoke target types on the legacy overload unless the target is made accessible to generated code.

Issues Fixed

Fixes #34867.
Fixes #35745.
Fixes #35740.



</details>

---

<details>
<summary><strong>🏁 Report — Final Recommendation</strong></summary>
<br/>

# Comparative Report — PR #35626

## Candidates Compared

| Rank | Candidate | Regression/Test Result | Assessment |
|---:|---|---|---|
| 1 | `try-fix-1` | ✅ PASS — `HybridWebViewSourceGenTests` 11/11 | Best candidate. Preserves the AOT-safe source-generator path while avoiding the shipped-interface compatibility break and the sample MAUIHWVSG003 compile failure. |
| 2 | `pr-plus-reviewer` | ✅ Equivalent to `try-fix-1` sandbox application | Applies the expert-review feedback by converging on the registry/no-interface-change design. Ranked just below `try-fix-1` because the try-fix candidate has the explicit recorded regression-test evidence and diff artifact. |
| 3 | `pr` | ⚠️ Gate inconclusive; targeted source-generator tests previously passed; expert review found 2 errors | Directionally correct but not acceptable as submitted because it adds required members to a shipped public interface and updates the sample to an unsupported source-generator call shape. |

## Key Findings

The raw PR implements the right high-level model for AOT safety: source-generated HybridWebView invokers, `JsonSerializerContext` metadata, annotated reflection fallback, and analyzer packaging. The implementation still exposes generated-invoker plumbing through `IHybridWebView`, which is a public compatibility hazard, and it converts a Controls.Sample call to the generated overload even though the target type is private and therefore rejected by the generator.

`try-fix-1` uses a static `ConditionalWeakTable<object, HybridWebViewInvoker>` registry instead of new required interface members. Generated interceptors register the invoker in the registry, the handler consults the registry first, and legacy reflection remains the fallback. This preserves the intended NativeAOT-safe behavior without expanding the shipped `IHybridWebView` contract.

## Winner

**Winner:** `try-fix-1`

`try-fix-1` wins because it is the only candidate with explicit passing targeted regression evidence and it directly fixes both expert-review errors. The gate was inconclusive due to environment/build issues and is not treated as a failure for any candidate, but the raw PR's code-review errors rank it below candidates that address them.


</details>

</details>
<!-- SESSION:3cd60c2 END -->

---

<details>
<summary><strong>🧭 Next Steps</strong> — alternative fix proposed (<code>try-fix-1</code>)</summary>
<br/>

**Automated review — alternative fix proposed**

The expert-reviewer evaluation compared the PR fix against automatically generated candidates and selected <code>try-fix-1</code> as the strongest fix.

**Why:** try-fix-1 preserves the PR source-generator/AOT-safe design while fixing both expert-review blockers: it avoids adding required members to shipped IHybridWebView and avoids the sample private-target source-generator diagnostic. It also has explicit passing targeted regression evidence.

Please consider applying the candidate diff below (or use it as guidance). Once you push an update, this workflow will re-trigger and re-evaluate.

<details><summary>Candidate diff (<code>try-fix-1</code>)</summary>

````diff
diff --git a/src/Controls/src/Core/HybridWebView/HybridWebView.cs b/src/Controls/src/Core/HybridWebView/HybridWebView.cs
index 26bd068576..6488059d41 100644
--- a/src/Controls/src/Core/HybridWebView/HybridWebView.cs
+++ b/src/Controls/src/Core/HybridWebView/HybridWebView.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Diagnostics.CodeAnalysis;
 using System.Text.Json;
+using System.Text.Json.Serialization;
 using System.Text.Json.Serialization.Metadata;
 using System.Threading.Tasks;
 
@@ -56,6 +57,33 @@ namespace Microsoft.Maui.Controls
 			((IHybridWebView)this).InvokeJavaScriptType = typeof(T);
 		}
 
+		/// <summary>
+		/// Sets the object that will be the target of JavaScript calls from the web view using
+		/// AOT-safe source-generated serialization. The source generator intercepts this call at
+		/// compile time and registers a generated invoker via <see cref="HybridWebViewInvokerRegistry"/>.
+		/// </summary>
+		/// <typeparam name="T">The type that contains methods callable from JavaScript.</typeparam>
+		/// <param name="target">An instance of type <typeparamref name="T"/> that will be used to call methods on.</param>
+		/// <param name="jsonSerializerContext">The source-generated JSON serializer context for parameter and return types used by the target methods.</param>
+		public void SetInvokeJavaScriptTarget<T>(T target, JsonSerializerContext jsonSerializerContext) where T : class
+		{
+			if (target is null)
+			{
+				throw new ArgumentNullException(nameof(target));
+			}
+
+			if (jsonSerializerContext is null)
+			{
+				throw new ArgumentNullException(nameof(jsonSerializerContext));
+			}
+
+			// The source generator interceptor must replace this method call at compile time.
+			// Reaching this body means interception failed.
+			throw new InvalidOperationException(
+				"SetInvokeJavaScriptTarget<T>(T, JsonSerializerContext) must be intercepted by the source generator. " +
+				"Ensure the Microsoft.Maui.Core.HybridWebViewSourceGen analyzer is referenced.");
+		}
+
 		void IHybridWebView.RawMessageReceived(string rawMessage)
 		{
 			RawMessageReceived?.Invoke(this, new HybridWebViewRawMessageReceivedEventArgs(rawMessage));
diff --git a/src/Controls/src/Core/PublicAPI/net-android/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/net-android/PublicAPI.Unshipped.txt
index 3d583efe17..a667fe02e2 100644
--- a/src/Controls/src/Core/PublicAPI/net-android/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/net-android/PublicAPI.Unshipped.txt
@@ -117,3 +117,4 @@ virtual Microsoft.Maui.Controls.LongPressingEventArgs.GetPosition(Microsoft.Maui
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextColorProperty -> Microsoft.Maui.Controls.BindableProperty
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextProperty -> Microsoft.Maui.Controls.BindableProperty
 ~virtual Microsoft.Maui.Controls.Platform.Compatibility.ShellItemRenderer.UpdateShellSectionBadge(Microsoft.Maui.Controls.ShellSection shellSection, int index) -> void
+Microsoft.Maui.Controls.HybridWebView.SetInvokeJavaScriptTarget<T>(T! target, System.Text.Json.Serialization.JsonSerializerContext! jsonSerializerContext) -> void
diff --git a/src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt
index 58d0483085..3aff90510f 100644
--- a/src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt
@@ -109,3 +109,4 @@ virtual Microsoft.Maui.Controls.LongPressingEventArgs.GetPosition(Microsoft.Maui
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeColorProperty -> Microsoft.Maui.Controls.BindableProperty
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextColorProperty -> Microsoft.Maui.Controls.BindableProperty
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextProperty -> Microsoft.Maui.Controls.BindableProperty
+Microsoft.Maui.Controls.HybridWebView.SetInvokeJavaScriptTarget<T>(T! target, System.Text.Json.Serialization.JsonSerializerContext! jsonSerializerContext) -> void
diff --git a/src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
index 58d0483085..3aff90510f 100644
--- a/src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
@@ -109,3 +109,4 @@ virtual Microsoft.Maui.Controls.LongPressingEventArgs.GetPosition(Microsoft.Maui
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeColorProperty -> Microsoft.Maui.Controls.BindableProperty
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextColorProperty -> Microsoft.Maui.Controls.BindableProperty
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextProperty -> Microsoft.Maui.Controls.BindableProperty
+Microsoft.Maui.Controls.HybridWebView.SetInvokeJavaScriptTarget<T>(T! target, System.Text.Json.Serialization.JsonSerializerContext! jsonSerializerContext) -> void
diff --git a/src/Controls/src/Core/PublicAPI/net-tizen/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
index 65f8923705..a9c0e20665 100644
--- a/src/Controls/src/Core/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
@@ -105,3 +105,4 @@ virtual Microsoft.Maui.Controls.LongPressingEventArgs.GetPosition(Microsoft.Maui
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeColorProperty -> Microsoft.Maui.Controls.BindableProperty
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextColorProperty -> Microsoft.Maui.Controls.BindableProperty
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextProperty -> Microsoft.Maui.Controls.BindableProperty
+Microsoft.Maui.Controls.HybridWebView.SetInvokeJavaScriptTarget<T>(T! target, System.Text.Json.Serialization.JsonSerializerContext! jsonSerializerContext) -> void
diff --git a/src/Controls/src/Core/PublicAPI/net-windows/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/net-windows/PublicAPI.Unshipped.txt
index dd6618904c..1df32759d4 100644
--- a/src/Controls/src/Core/PublicAPI/net-windows/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/net-windows/PublicAPI.Unshipped.txt
@@ -102,3 +102,4 @@ virtual Microsoft.Maui.Controls.LongPressingEventArgs.GetPosition(Microsoft.Maui
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeColorProperty -> Microsoft.Maui.Controls.BindableProperty
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextColorProperty -> Microsoft.Maui.Controls.BindableProperty
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextProperty -> Microsoft.Maui.Controls.BindableProperty
+Microsoft.Maui.Controls.HybridWebView.SetInvokeJavaScriptTarget<T>(T! target, System.Text.Json.Serialization.JsonSerializerContext! jsonSerializerContext) -> void
diff --git a/src/Controls/src/Core/PublicAPI/net/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/net/PublicAPI.Unshipped.txt
index 32221f10a4..9b46bdf737 100644
--- a/src/Controls/src/Core/PublicAPI/net/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/net/PublicAPI.Unshipped.txt
@@ -99,3 +99,4 @@ virtual Microsoft.Maui.Controls.LongPressingEventArgs.GetPosition(Microsoft.Maui
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeColorProperty -> Microsoft.Maui.Controls.BindableProperty
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextColorProperty -> Microsoft.Maui.Controls.BindableProperty
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextProperty -> Microsoft.Maui.Controls.BindableProperty
+Microsoft.Maui.Controls.HybridWebView.SetInvokeJavaScriptTarget<T>(T! target, System.Text.Json.Serialization.JsonSerializerContext! jsonSerializerContext) -> void
diff --git a/src/Controls/src/Core/PublicAPI/netstandard/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/netstandard/PublicAPI.Unshipped.txt
index acc2cabf3f..2be638d112 100644
--- a/src/Controls/src/Core/PublicAPI/netstandard/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/netstandard/PublicAPI.Unshipped.txt
@@ -90,3 +90,4 @@ virtual Microsoft.Maui.Controls.LongPressingEventArgs.GetPosition(Microsoft.Maui
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeColorProperty -> Microsoft.Maui.Controls.BindableProperty
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextColorProperty -> Microsoft.Maui.Controls.BindableProperty
 ~static readonly Microsoft.Maui.Controls.ToolbarItem.BadgeTextProperty -> Microsoft.Maui.Controls.BindableProperty
+Microsoft.Maui.Controls.HybridWebView.SetInvokeJavaScriptTarget<T>(T! target, System.Text.Json.Serialization.JsonSerializerContext! jsonSerializerContext) -> void
diff --git a/src/Controls/tests/SourceGen.UnitTests/HybridWebViewSourceGenTests.cs b/src/Controls/tests/SourceGen.UnitTests/HybridWebViewSourceGenTests.cs
index 105241055a..7a1314492b 100644
--- a/src/Controls/tests/SourceGen.UnitTests/HybridWebViewSourceGenTests.cs
+++ b/src/Controls/tests/SourceGen.UnitTests/HybridWebViewSourceGenTests.cs
@@ -53,6 +53,7 @@ internal sealed class InvokeTargetJsonContext : JsonSerializerContext
 		Assert.Equal("HybridWebViewInterceptors.g.cs", generated.HintName);
 		Assert.Contains("file static class HybridWebViewInterceptors", generated.SourceText.ToString(), StringComparison.Ordinal);
 		Assert.Contains("SetInvokeJavaScriptTarget_0", generated.SourceText.ToString(), StringComparison.Ordinal);
+		Assert.Contains("HybridWebViewInvokerRegistry.Register(hybridWebView", generated.SourceText.ToString(), StringComparison.Ordinal);
 	}
 
 	[Fact]
@@ -237,8 +238,11 @@ internal sealed class InvokeTargetJsonContext : JsonSerializerContext
 	}
 
 	[Fact]
-	public void InterfaceReceiverAssignsInvokerThroughInterface()
+	public void InterfaceReceiverDoesNotGenerateInterceptorWithoutMethod()
 	{
+		// With the registry approach, SetInvokeJavaScriptTarget(T, JsonSerializerContext) is only
+		// on the concrete HybridWebView class, not IHybridWebView. Calls on IHybridWebView receivers
+		// should not produce an interceptor (no 2-arg overload exists on the interface).
 		const string source = """
 using System;
 using System.Text.Json;
@@ -252,7 +256,8 @@ public static class Registration
 {
 	public static void Register(IHybridWebView hybridWebView)
 	{
-		hybridWebView.SetInvokeJavaScriptTarget(new InvokeTarget(), InvokeTargetJsonContext.Default);
+		// This won't compile because IHybridWebView doesn't have the 2-arg overload.
+		// The test verifies the generator handles no candidates gracefully.
 	}
 }
 
@@ -271,13 +276,8 @@ internal sealed class InvokeTargetJsonContext : JsonSerializerContext
 """;
 
 		var (result, updatedCompilation, generatorDiagnostics) = RunGenerator(source);
-		AssertNoCompilationErrors(updatedCompilation, generatorDiagnostics);
-
-		var generated = Assert.Single(result.Results.Single().GeneratedSources).SourceText.ToString();
-		Assert.Contains("this global::Microsoft.Maui.IHybridWebView hybridWebView", generated, StringComparison.Ordinal);
-		Assert.Contains("hybridWebView.Invoker = new Invoker_0(typedTarget, jsonSerializerContext);", generated, StringComparison.Ordinal);
-		Assert.DoesNotContain("concreteHybridWebView", generated, StringComparison.Ordinal);
-		Assert.DoesNotContain("can only be registered on Microsoft.Maui.Controls.HybridWebView", generated, StringComparison.Ordinal);
+		// No generated sources expected — IHybridWebView doesn't have the 2-arg overload
+		Assert.Empty(result.Results.Single().GeneratedSources);
 	}
 
 	[Fact]
diff --git a/src/Core/src/Core.csproj b/src/Core/src/Core.csproj
index 41e5ba010d..1231325332 100644
--- a/src/Core/src/Core.csproj
+++ b/src/Core/src/Core.csproj
@@ -99,6 +99,7 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Remove="Platform\iOS\CALayerAutosizeObserver.cs" />
+    <Compile Remove="HybridWebViewSourceGen\**" />
   </ItemGroup>
 
   <Target Name="_CopyToBuildTasksDir" AfterTargets="Build">
diff --git a/src/Core/src/Handlers/HybridWebView/HybridWebViewHandler.cs b/src/Core/src/Handlers/HybridWebView/HybridWebViewHandler.cs
index 652164ccf4..1644e92669 100644
--- a/src/Core/src/Handlers/HybridWebView/HybridWebViewHandler.cs
+++ b/src/Core/src/Handlers/HybridWebView/HybridWebViewHandler.cs
@@ -188,42 +188,54 @@ namespace Microsoft.Maui.Handlers
 		{
 			try
 			{
-				var invokeTarget = VirtualView.InvokeJavaScriptTarget ?? throw new InvalidOperationException($"The {nameof(IHybridWebView)}.{nameof(IHybridWebView.InvokeJavaScriptTarget)} property must have a value in order to invoke a .NET method from JavaScript.");
-				var invokeTargetType = VirtualView.InvokeJavaScriptType ?? throw new InvalidOperationException($"The {nameof(IHybridWebView)}.{nameof(IHybridWebView.InvokeJavaScriptType)} property must have a value in order to invoke a .NET method from JavaScript.");
+					JSInvokeMethodData? invokeData = null;
+					if (streamBody is not null)
+					{
+						invokeData = await JsonSerializer.DeserializeAsync<JSInvokeMethodData>(streamBody, HybridWebViewHandlerJsonContext.Default.JSInvokeMethodData);
+					}
+					else if (stringBody is not null && !string.IsNullOrWhiteSpace(stringBody))
+					{
+						invokeData = JsonSerializer.Deserialize<JSInvokeMethodData>(stringBody, HybridWebViewHandlerJsonContext.Default.JSInvokeMethodData);
+					}
 
-				JSInvokeMethodData? invokeData = null;
-				if (streamBody is not null)
-				{
-					invokeData = await JsonSerializer.DeserializeAsync<JSInvokeMethodData>(streamBody, HybridWebViewHandlerJsonContext.Default.JSInvokeMethodData);
-				}
-				else if (stringBody is not null && !string.IsNullOrWhiteSpace(stringBody))
-				{
-					invokeData = JsonSerializer.Deserialize<JSInvokeMethodData>(stringBody, HybridWebViewHandlerJsonContext.Default.JSInvokeMethodData);
-				}
+					if (invokeData?.MethodName is null)
+					{
+						throw new InvalidOperationException("The invoke data did not provide a method name.");
+					}
 
-				if (invokeData?.MethodName is null)
-				{
-					throw new InvalidOperationException("The invoke data did not provide a method name.");
-				}
+					// AOT-safe path: check the invoker registry first
+					if (HybridWebViewInvokerRegistry.TryGetInvoker(VirtualView, out var invoker) && invoker is not null)
+					{
+						var jsonResult = await invoker.InvokeMethodAsync(invokeData.MethodName, invokeData.ParamValues);
+						var invokeResult = jsonResult is not null
+							? new DotNetInvokeResult { Result = jsonResult, IsJson = true }
+							: new DotNetInvokeResult();
+						var json = JsonSerializer.Serialize(invokeResult);
+						return Encoding.UTF8.GetBytes(json);
+					}
 
-				var invokeResultRaw = await InvokeDotNetMethodAsync(invokeTargetType, invokeTarget, invokeData);
-				var invokeResult = CreateInvokeResult(invokeResultRaw);
-				var json = JsonSerializer.Serialize(invokeResult);
-				var contentBytes = Encoding.UTF8.GetBytes(json);
+					// Reflection fallback path
+					var invokeTarget = VirtualView.InvokeJavaScriptTarget ?? throw new InvalidOperationException($"The {nameof(IHybridWebView)}.{nameof(IHybridWebView.InvokeJavaScriptTarget)} property must have a value in order to invoke a .NET method from JavaScript.");
+					var invokeTargetType = VirtualView.InvokeJavaScriptType ?? throw new InvalidOperationException($"The {nameof(IHybridWebView)}.{nameof(IHybridWebView.InvokeJavaScriptType)} property must have a value in order to invoke a .NET method from JavaScript.");
 
-				return contentBytes;
-			}
-			catch (Exception ex)
-			{
-				MauiContext?.CreateLogger<HybridWebViewHandler>()?.LogError(ex, "An error occurred while invoking a .NET method from JavaScript: {ErrorMessage}", ex.Message);
+					var invokeResultRaw = await InvokeDotNetMethodAsync(invokeTargetType, invokeTarget, invokeData);
+					var invokeResultFallback = CreateInvokeResult(invokeResultRaw);
+					var jsonFallback = JsonSerializer.Serialize(invokeResultFallback);
+					var contentBytes = Encoding.UTF8.GetBytes(jsonFallback);
 
-				// Return error response instead of null so JavaScript can handle the error
-				var errorResult = CreateErrorResult(ex);
-				var errorJson = JsonSerializer.Serialize(errorResult, HybridWebViewHandlerJsonContext.Default.DotNetInvokeResult);
-				var errorBytes = Encoding.UTF8.GetBytes(errorJson);
-				return errorBytes;
+					return contentBytes;
+				}
+				catch (Exception ex)
+				{
+					MauiContext?.CreateLogger<HybridWebViewHandler>()?.LogError(ex, "An error occurred while invoking a .NET method from JavaScript: {ErrorMessage}", ex.Message);
+
+					// Return error response instead of null so JavaScript can handle the error
+					var errorResult = CreateErrorResult(ex);
+					var errorJson = JsonSerializer.Serialize(errorResult, HybridWebViewHandlerJsonContext.Default.DotNetInvokeResult);
+					var errorBytes = Encoding.UTF8.GetBytes(errorJson);
+					return errorBytes;
+				}
 			}
-		}
 
 		private static DotNetInvokeResult CreateInvokeResult(object? result)
 		{
diff --git a/src/Core/src/HybridWebViewSourceGen/HybridWebViewInvokeTargetGenerator.cs b/src/Core/src/HybridWebViewSourceGen/HybridWebViewInvokeTargetGenerator.cs
index 6159393085..a591b0919c 100644
--- a/src/Core/src/HybridWebViewSourceGen/HybridWebViewInvokeTargetGenerator.cs
+++ b/src/Core/src/HybridWebViewSourceGen/HybridWebViewInvokeTargetGenerator.cs
@@ -415,7 +415,7 @@ public sealed class HybridWebViewInvokeTargetGenerator : IIncrementalGenerator
 			sb.AppendLine($"            if (target is not {info.TargetTypeName} typedTarget)");
 			sb.AppendLine($"                throw new InvalidOperationException($\"Type mismatch: expected {info.TargetTypeName.Split('.').Last()} but got {{target.GetType().FullName}}\");");
 			sb.AppendLine();
-			sb.AppendLine($"            hybridWebView.Invoker = new Invoker_{index}(typedTarget, jsonSerializerContext);");
+				sb.AppendLine($"            global::Microsoft.Maui.HybridWebViewInvokerRegistry.Register(hybridWebView, new Invoker_{index}(typedTarget, jsonSerializerContext));");
 			sb.AppendLine("        }");
 			sb.AppendLine();
 
diff --git a/src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt
index 5ac4dcac9f..b68d057332 100644
--- a/src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt
+++ b/src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt
@@ -277,3 +277,9 @@ static Microsoft.Maui.Platform.TimePickerExtensions.UpdateTime(this Microsoft.Ma
 static Microsoft.Maui.SafeAreaEdges.Container.get -> Microsoft.Maui.SafeAreaEdges
 virtual Microsoft.Maui.Handlers.DatePickerHandler2.CreateDatePickerDialog(int year, int month, int day) -> Google.Android.Material.DatePicker.MaterialDatePicker?
 virtual Microsoft.Maui.Handlers.TimePickerHandler2.CreateTimePickerDialog(int hour, int minute) -> Google.Android.Material.TimePicker.MaterialTimePicker?
+Microsoft.Maui.HybridWebViewInvoker
+Microsoft.Maui.HybridWebViewInvoker.HybridWebViewInvoker(object? invokeJavaScriptTarget, System.Type? invokeJavaScriptType) -> void
+abstract Microsoft.Maui.HybridWebViewInvoker.InvokeMethodAsync(string! methodName, string![]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!
+Microsoft.Maui.HybridWebViewInvokerRegistry
+static Microsoft.Maui.HybridWebViewInvokerRegistry.Register(object! view, Microsoft.Maui.HybridWebViewInvoker! invoker) -> void
+static Microsoft.Maui.HybridWebViewInvokerRegistry.TryGetInvoker(object! view, out Microsoft.Maui.HybridWebViewInvoker? invoker) -> bool
diff --git a/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
index d48be1c71b..512e89b39f 100644
--- a/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
+++ b/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
@@ -11,3 +11,9 @@ static Microsoft.Maui.Handlers.EditorHandler.MapBackground(Microsoft.Maui.Handle
 static Microsoft.Maui.Handlers.EntryHandler.MapBackground(Microsoft.Maui.Handlers.IEntryHandler! handler, Microsoft.Maui.IEntry! entry) -> void
 static Microsoft.Maui.Handlers.RadioButtonHandler.MapBackground(Microsoft.Maui.Handlers.IRadioButtonHandler! handler, Microsoft.Maui.IRadioButton! radioButton) -> void
 static Microsoft.Maui.SafeAreaEdges.Container.get -> Microsoft.Maui.SafeAreaEdges
+Microsoft.Maui.HybridWebViewInvoker
+Microsoft.Maui.HybridWebViewInvoker.HybridWebViewInvoker(object? invokeJavaScriptTarget, System.Type? invokeJavaScriptType) -> void
+abstract Microsoft.Maui.HybridWebViewInvoker.InvokeMethodAsync(string! methodName, string![]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!
+Microsoft.Maui.HybridWebViewInvokerRegistry
+static Microsoft.Maui.HybridWebViewInvokerRegistry.Register(object! view, Microsoft.Maui.HybridWebViewInvoker! invoker) -> void
+static Microsoft.Maui.HybridWebViewInvokerRegistry.TryGetInvoker(object! view, out Microsoft.Maui.HybridWebViewInvoker? invoker) -> bool
diff --git a/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
index d48be1c71b..512e89b39f 100644
--- a/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
+++ b/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
@@ -11,3 +11,9 @@ static Microsoft.Maui.Handlers.EditorHandler.MapBackground(Microsoft.Maui.Handle
 static Microsoft.Maui.Handlers.EntryHandler.MapBackground(Microsoft.Maui.Handlers.IEntryHandler! handler, Microsoft.Maui.IEntry! entry) -> void
 static Microsoft.Maui.Handlers.RadioButtonHandler.MapBackground(Microsoft.Maui.Handlers.IRadioButtonHandler! handler, Microsoft.Maui.IRadioButton! radioButton) -> void
 static Microsoft.Maui.SafeAreaEdges.Container.get -> Microsoft.Maui.SafeAreaEdges
+Microsoft.Maui.HybridWebViewInvoker
+Microsoft.Maui.HybridWebViewInvoker.HybridWebViewInvoker(object? invokeJavaScriptTarget, System.Type? invokeJavaScriptType) -> void
+abstract Microsoft.Maui.HybridWebViewInvoker.InvokeMethodAsync(string! methodName, string![]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!
+Microsoft.Maui.HybridWebViewInvokerRegistry
+static Microsoft.Maui.HybridWebViewInvokerRegistry.Register(object! view, Microsoft.Maui.HybridWebViewInvoker! invoker) -> void
+static Microsoft.Maui.HybridWebViewInvokerRegistry.TryGetInvoker(object! view, out Microsoft.Maui.HybridWebViewInvoker? invoker) -> bool
diff --git a/src/Core/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
index 66a516d720..062842d201 100644
--- a/src/Core/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
+++ b/src/Core/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
@@ -1,2 +1,8 @@
 #nullable enable
 static Microsoft.Maui.GridLength.implicit operator Microsoft.Maui.GridLength(string! value) -> Microsoft.Maui.GridLength
+Microsoft.Maui.HybridWebViewInvoker
+Microsoft.Maui.HybridWebViewInvoker.HybridWebViewInvoker(object? invokeJavaScriptTarget, System.Type? invokeJavaScriptType) -> void
+abstract Microsoft.Maui.HybridWebViewInvoker.InvokeMethodAsync(string! methodName, string![]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!
+Microsoft.Maui.HybridWebViewInvokerRegistry
+static Microsoft.Maui.HybridWebViewInvokerRegistry.Register(object! view, Microsoft.Maui.HybridWebViewInvoker! invoker) -> void
+static Microsoft.Maui.HybridWebViewInvokerRegistry.TryGetInvoker(object! view, out Microsoft.Maui.HybridWebViewInvoker? invoker) -> bool
diff --git a/src/Core/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt
index 6e95a1b683..a9c1c1f3ba 100644
--- a/src/Core/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt
+++ b/src/Core/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt
@@ -3,3 +3,9 @@ override Microsoft.Maui.Platform.ContentPanel.OnCreateAutomationPeer() -> Micros
 override Microsoft.Maui.Platform.MauiPasswordTextBox.OnCreateAutomationPeer() -> Microsoft.UI.Xaml.Automation.Peers.AutomationPeer!
 static Microsoft.Maui.GridLength.implicit operator Microsoft.Maui.GridLength(string! value) -> Microsoft.Maui.GridLength
 static Microsoft.Maui.SafeAreaEdges.Container.get -> Microsoft.Maui.SafeAreaEdges
+Microsoft.Maui.HybridWebViewInvoker
+Microsoft.Maui.HybridWebViewInvoker.HybridWebViewInvoker(object? invokeJavaScriptTarget, System.Type? invokeJavaScriptType) -> void
+abstract Microsoft.Maui.HybridWebViewInvoker.InvokeMethodAsync(string! methodName, string![]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!
+Microsoft.Maui.HybridWebViewInvokerRegistry
+static Microsoft.Maui.HybridWebViewInvokerRegistry.Register(object! view, Microsoft.Maui.HybridWebViewInvoker! invoker) -> void
+static Microsoft.Maui.HybridWebViewInvokerRegistry.TryGetInvoker(object! view, out Microsoft.Maui.HybridWebViewInvoker? invoker) -> bool
diff --git a/src/Core/src/PublicAPI/net/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net/PublicAPI.Unshipped.txt
index b5d23f77de..2cebc55b8e 100644
--- a/src/Core/src/PublicAPI/net/PublicAPI.Unshipped.txt
+++ b/src/Core/src/PublicAPI/net/PublicAPI.Unshipped.txt
@@ -1,3 +1,9 @@
 #nullable enable
 static Microsoft.Maui.GridLength.implicit operator Microsoft.Maui.GridLength(string! value) -> Microsoft.Maui.GridLength
 static Microsoft.Maui.SafeAreaEdges.Container.get -> Microsoft.Maui.SafeAreaEdges
+Microsoft.Maui.HybridWebViewInvoker
+Microsoft.Maui.HybridWebViewInvoker.HybridWebViewInvoker(object? invokeJavaScriptTarget, System.Type? invokeJavaScriptType) -> void
+abstract Microsoft.Maui.HybridWebViewInvoker.InvokeMethodAsync(string! methodName, string![]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!
+Microsoft.Maui.HybridWebViewInvokerRegistry
+static Microsoft.Maui.HybridWebViewInvokerRegistry.Register(object! view, Microsoft.Maui.HybridWebViewInvoker! invoker) -> void
+static Microsoft.Maui.HybridWebViewInvokerRegistry.TryGetInvoker(object! view, out Microsoft.Maui.HybridWebViewInvoker? invoker) -> bool
diff --git a/src/Core/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt
index 6e861c095c..f40130a16d 100644
--- a/src/Core/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt
+++ b/src/Core/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt
@@ -1,2 +1,8 @@
 #nullable enable
 static Microsoft.Maui.SafeAreaEdges.Container.get -> Microsoft.Maui.SafeAreaEdges
+Microsoft.Maui.HybridWebViewInvoker
+Microsoft.Maui.HybridWebViewInvoker.HybridWebViewInvoker(object? invokeJavaScriptTarget, System.Type? invokeJavaScriptType) -> void
+abstract Microsoft.Maui.HybridWebViewInvoker.InvokeMethodAsync(string! methodName, string![]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!
+Microsoft.Maui.HybridWebViewInvokerRegistry
+static Microsoft.Maui.HybridWebViewInvokerRegistry.Register(object! view, Microsoft.Maui.HybridWebViewInvoker! invoker) -> void
+static Microsoft.Maui.HybridWebViewInvokerRegistry.TryGetInvoker(object! view, out Microsoft.Maui.HybridWebViewInvoker? invoker) -> bool
diff --git a/src/Core/src/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt
index 6e861c095c..f40130a16d 100644
--- a/src/Core/src/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt
+++ b/src/Core/src/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt
@@ -1,2 +1,8 @@
 #nullable enable
 static Microsoft.Maui.SafeAreaEdges.Container.get -> Microsoft.Maui.SafeAreaEdges
+Microsoft.Maui.HybridWebViewInvoker
+Microsoft.Maui.HybridWebViewInvoker.HybridWebViewInvoker(object? invokeJavaScriptTarget, System.Type? invokeJavaScriptType) -> void
+abstract Microsoft.Maui.HybridWebViewInvoker.InvokeMethodAsync(string! methodName, string![]? paramJsonValues) -> System.Threading.Tasks.Task<string?>!
+Microsoft.Maui.HybridWebViewInvokerRegistry
+static Microsoft.Maui.HybridWebViewInvokerRegistry.Register(object! view, Microsoft.Maui.HybridWebViewInvoker! invoker) -> void
+static Microsoft.Maui.HybridWebViewInvokerRegistry.TryGetInvoker(object! view, out Microsoft.Maui.HybridWebViewInvoker? invoker) -> bool

@MauiBot MauiBot removed the s/agent-review-in-progress AI review is currently running for this PR label Jun 22, 2026
@PureWeen
PureWeen merged commit 71b880a into net11.0 Jun 22, 2026
134 of 149 checks passed
@PureWeen
PureWeen deleted the hybrid-web-view-aot-safe branch June 22, 2026 20:54
@github-actions github-actions Bot added this to the .NET 11.0-preview6 milestone Jun 22, 2026
jfversluis added a commit that referenced this pull request Jun 24, 2026
<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Description

Updates `eng/scripts/get-maui-pr.sh` and `eng/scripts/get-maui-pr.ps1`
so users can still apply PR package artifacts when the aggregate
`maui-pr` build is red because of unrelated CI legs, as long as the
package-producing artifacts exist for the current PR commit.

### Changes

- Treat a red aggregate `maui-pr` build as a warning instead of an
immediate abort.
- Keep `PackageArtifacts` as the hard gate before downloading/applying
packages.
- Filter AzDO fallback builds to the current PR head/merge context using
`triggerInfo.pr.sourceSha`, `sourceVersion`, and the PR merge SHA.
- Warn when `Pack macOS` or `Pack Windows` timeline records do not
report success.
- Update troubleshooting text to refer to completed `maui-pr` builds
with `PackageArtifacts` rather than green checks.

### Validation

- `bash -n eng/scripts/get-maui-pr.sh`
- PowerShell parser validation for `eng/scripts/get-maui-pr.ps1`
- `git diff --check`
- Local throwaway MAUI projects under
`/Volumes/NieuwVolume/maui-pr-artifact-verification-20260616101523`:
- PR `#35805`: red aggregate build `1461390`, `PackageArtifacts`
present, pack jobs succeeded; Bash and PowerShell scripts applied
package `10.0.80-ci.pr35805.26312.37`; `dotnet restore` succeeded.
- PR `#35923`: green aggregate build path applied package
`10.0.80-ci.pr35923.26315.57`; `dotnet restore` succeeded.
- PR `#35626`: missing `PackageArtifacts` failed before mutating the
project.
  - PR `#999999`: nonexistent PR failed cleanly during PR lookup.
- Wrong-SHA harness for PR `#35805`: refused to use older completed
builds when none matched the requested head/merge commit.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
simonrozsival added a commit that referenced this pull request Jul 3, 2026
Resolves the AppHostBuilderExtensions conflict by keeping this PR's
removal of AddControlsHandlers (handlers now resolved via
[ElementHandler] attributes).

Now that #35626 made HybridWebView AOT-safe and removed the
RuntimeFeature.IsHybridWebViewSupported feature switch, migrate
HybridWebView to the attribute pattern as well:
- Add [ElementHandler(typeof(HybridWebViewHandler))] to HybridWebView.
- Drop the switch-guarded DI registration in SetupDefaults; register
  IHybridWebViewTaskManager unconditionally (matching net11.0).
- Remove the IsHybridWebViewSupported switch this branch had re-added to
  RuntimeFeature.cs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 23, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-controls-hybridwebview HybridWebView control p/0 Current heighest priority issues that we are targeting for a release. platform/android platform/ios platform/macos macOS / Mac Catalyst platform/windows s/agent-fix-win AI found a better alternative fix than the PR s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review)

5 participants