Skip to content

Core - ARM64 support for .Net 4.8.1 (rebased) - #5267

Open
amaitland wants to merge 5 commits into
masterfrom
ter-805-arm64-target
Open

Core - ARM64 support for .Net 4.8.1 (rebased)#5267
amaitland wants to merge 5 commits into
masterfrom
ter-805-arm64-target

Conversation

@amaitland

@amaitland amaitland commented Jun 26, 2026

Copy link
Copy Markdown
Member

Fixes #4155

Summary by CodeRabbit

  • New Features
    • Added Windows ARM64 support across builds, runtime loading, examples, tests, and publishing.
    • ARM64 locale resources and runtime binaries are now included in application output and NuGet packages.
  • Bug Fixes
    • ARM64 applications now automatically load the correct architecture-specific runtime components.
    • Improved ARM64 build, signing, and artifact-copy workflows for consistent packaging.
  • Updates
    • Updated the Chromium Embedded Framework runtime to version 151.3.16.

@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 4d8dd14c-7029-4a9e-9699-746cf7973f83

📥 Commits

Reviewing files that changed from the base of the PR and between 43b9ff5 and d920591.

📒 Files selected for processing (14)
  • CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.vcxproj
  • CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj
  • CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.csproj
  • CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.netcore.csproj
  • CefSharp.Test/CefSharp.Test.csproj
  • CefSharp.Test/CefSharp.Test.netcore.csproj
  • CefSharp.WinForms.Example/CefSharp.WinForms.Example.csproj
  • CefSharp.WinForms.Example/CefSharp.WinForms.Example.netcore.csproj
  • CefSharp.Wpf.Example/CefSharp.Wpf.Example.csproj
  • CefSharp.Wpf.Example/CefSharp.Wpf.Example.netcore.csproj
  • CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.csproj
  • CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.netcore.csproj
  • NuGet/CefSharp.Common.targets
  • build.ps1

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

ARM64 build targets are added across the solution, native and managed projects, runtime loading code, and NuGet packaging. CefRuntime resolves architecture-specific assets with RuntimeInformation.ProcessArchitecture. Package metadata includes ARM64 outputs and dependencies.

Changes

ARM64 build and packaging support

Layer / File(s) Summary
Native solution and project configurations
CefSharp3.sln, CefSharp.BrowserSubprocess.Core/..., CefSharp.Core.Runtime/...
ARM64 solution configurations, native project settings, build paths, compiler/linker settings, and precompiled-header conditions are added.
Managed project platform settings
CefSharp.BrowserSubprocess/..., CefSharp.OffScreen.Example/*, CefSharp.Test/*, CefSharp.WinForms.Example/*, CefSharp.Wpf.Example/*, CefSharp.Wpf.HwndHost.Example/*
Managed projects add ARM64 platform entries and win-arm64 runtime identifiers. The BrowserSubprocess post-build command adds an ARM64 branch.
Architecture-aware runtime loading
CefSharp/CefRuntime.cs, CefSharp/CefSharp.csproj, CefSharp/DependencyChecker.cs
AnyCPU runtime loading uses RuntimeInformation.ProcessArchitecture. Related package and documentation entries are updated.
Package asset declarations
CefSharp.Native.props, NuGet/CefSharp.Common.props, NuGet/CefSharp.Common.nuspec
ARM64 locale items, binary globs, runtime dependencies, and packaged native artifacts are declared.
NuGet targets and build packaging
NuGet/CefSharp.Common.targets, build.ps1
ARM64 output linking, restore-copy handling, and supported-architecture packaging logic are added.

Estimated code review effort: 4 (Complex) | ~60 minutes

Merge Risk: ⚪ Minimal · up to d9205

This change adds ARM64 build, runtime-loading, and package asset support for .NET Framework 4.8.1 on Windows ARM64. No concrete current-head merge-blocking risk remains.

Sequence Diagram(s)

sequenceDiagram
  participant Application
  participant CefRuntime
  participant RuntimeInformation
  participant CefSharpCoreRuntime
  Application->>CefRuntime: Request AnyCPU runtime loading
  CefRuntime->>RuntimeInformation: Read ProcessArchitecture
  CefRuntime->>CefSharpCoreRuntime: Resolve and load architecture-specific runtime
  CefSharpCoreRuntime-->>CefRuntime: Return assembly or file-not-found result
  CefRuntime-->>Application: Complete loading or raise error
Loading
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description only contains the issue reference. It omits the required summary, changes, testing details, change types, and checklist information. Add the required Summary, Changes, How Has This Been Tested?, Types of changes, and Checklist sections. Describe the ARM64 build changes, testing environment, tests executed, and applicable checklist selections.
Out of Scope Changes check ⚠️ Warning The ARM64 work is in scope, but the pull request also upgrades the CEF SDK and runtime packages from 150.0.11 to 151.3.16 and changes default build versions. These changes are not explicitly required … Move the CEF version and build-version upgrades to a separate pull request, or document why each upgrade is required for ARM64 support and issue #4155.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: ARM64 support for .NET Framework 4.8.1. The “rebased” qualifier is extra but does not make the title unclear.
Linked Issues check ✅ Passed The changes support issue #4155 by adding ARM64 configurations, runtime identifiers, architecture-specific loading, packaging, solution mappings, and managed C++ build support for .NET Framework ARM64…
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 1 files. (14 skipped: 1…
Full details: Out of Scope Changes check

Explanation

The ARM64 work is in scope, but the pull request also upgrades the CEF SDK and runtime packages from 150.0.11 to 151.3.16 and changes default build versions. These changes are not explicitly required by issue #4155.

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ter-805-arm64-target

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="if $(PlatformName) == x86 (&#xD;&#xA; call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvars32.bat&quot;&#xD;&#xA; editbin /largeaddressaware /TSAWARE &quot;$(TargetPath)&quot; &#xD;&#xA; sn -R &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\CefSharp.snk&quot;&#xD;&#xA;) else (&#xD;&#xA; call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvars64.bat&quot;&#xD;&#xA; editbin /TSAWARE /STACK:8388608 &quot;$(TargetPath)&quot;&#xD;&#xA; sn -R &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\CefSharp.snk&quot;&#xD;&#xA;)" />
<Exec Command="if $(PlatformName) == x86 (&#xD;&#xA; call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvars32.bat&quot;&#xD;&#xA; editbin /largeaddressaware /TSAWARE &quot;$(TargetPath)&quot; &#xD;&#xA; sn -R &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\CefSharp.snk&quot;&#xD;&#xA;) else if $(PlatformName) == x64 (&#xD;&#xA; call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvars64.bat&quot;&#xD;&#xA; editbin /TSAWARE /STACK:8388608 &quot;$(TargetPath)&quot;&#xD;&#xA; sn -R &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\CefSharp.snk&quot;&#xD;&#xA;) else if $(PlatformName) == arm64 (&#xD;&#xA; call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvarsamd64_arm64.bat&quot;&#xD;&#xA; editbin /TSAWARE /STACK:8388608 &quot;$(TargetPath)&quot;&#xD;&#xA; sn -R &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\CefSharp.snk&quot;&#xD;&#xA;)" />

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Need to verify the output with dumpbin

@amaitland amaitland left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Needs minor tweaks

Comment thread CefSharp/CefRuntime.cs
Comment thread build.ps1

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@build.ps1`:
- Around line 495-499: The default multi-arch path now includes arm64, but VSX
still bootstraps the VC environment from only the first entry in $ARCHES, so the
arm64 build can inherit the wrong toolset. Update the VC setup logic in VSX to
select an arm64-capable vcvarsall mode whenever the arches list contains arm64,
or otherwise ensure the initial bootstrap matches the architectures being built
instead of always using $ARCHES[0].

In `@CefSharp.BrowserSubprocess/CefSharp.BrowserSubprocess.csproj`:
- Line 45: The build step in CefSharp.BrowserSubprocess.csproj uses the
x64-to-ARM64 cross toolchain for the arm64 branch, which is incorrect for native
ARM64 Visual Studio environments. Update the Exec command in the browser
subprocess project so the arm64 path uses the native ARM64 vcvars bootstrap (or
branches on host architecture to choose the right vcvars entrypoint) before
running editbin and sn, keeping the existing x86 and x64 behavior unchanged.

In `@NuGet/CefSharp.Common.targets`:
- Around line 472-475: The AnyCPU restore-copy path in CefSharp.Common.targets
updates the x86/x64 destination properties but leaves the arm64 destination
unmodified, so the arm64 payload is copied to the root instead of an arm64
subfolder. Update the property group that defines CefRedistArm64TargetDir so the
AnyCPU case appends arm64\ in the same way CefRedist32TargetDir and
CefRedist64TargetDir append x86\ and x64\, and keep the change aligned with the
AnyCPU restore-copy target that now includes arm64.
🪄 Autofix (Beta)

✅ Autofix completed


ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6d80cf05-8ab1-46c2-9ce7-3da49111f671

📥 Commits

Reviewing files that changed from the base of the PR and between 9f3be65 and df49b95.

📒 Files selected for processing (22)
  • CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.vcxproj
  • CefSharp.BrowserSubprocess/CefSharp.BrowserSubprocess.csproj
  • CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj
  • CefSharp.Native.props
  • CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.csproj
  • CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.netcore.csproj
  • CefSharp.Test/CefSharp.Test.csproj
  • CefSharp.Test/CefSharp.Test.netcore.csproj
  • CefSharp.WinForms.Example/CefSharp.WinForms.Example.csproj
  • CefSharp.WinForms.Example/CefSharp.WinForms.Example.netcore.csproj
  • CefSharp.Wpf.Example/CefSharp.Wpf.Example.csproj
  • CefSharp.Wpf.Example/CefSharp.Wpf.Example.netcore.csproj
  • CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.csproj
  • CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.netcore.csproj
  • CefSharp/CefRuntime.cs
  • CefSharp/CefSharp.csproj
  • CefSharp/DependencyChecker.cs
  • CefSharp3.sln
  • NuGet/CefSharp.Common.nuspec
  • NuGet/CefSharp.Common.props
  • NuGet/CefSharp.Common.targets
  • build.ps1

Comment thread build.ps1
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="if $(PlatformName) == x86 (&#xD;&#xA; call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvars32.bat&quot;&#xD;&#xA; editbin /largeaddressaware /TSAWARE &quot;$(TargetPath)&quot; &#xD;&#xA; sn -R &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\CefSharp.snk&quot;&#xD;&#xA;) else (&#xD;&#xA; call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvars64.bat&quot;&#xD;&#xA; editbin /TSAWARE /STACK:8388608 &quot;$(TargetPath)&quot;&#xD;&#xA; sn -R &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\CefSharp.snk&quot;&#xD;&#xA;)" />
<Exec Command="if $(PlatformName) == x86 (&#xD;&#xA; call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvars32.bat&quot;&#xD;&#xA; editbin /largeaddressaware /TSAWARE &quot;$(TargetPath)&quot; &#xD;&#xA; sn -R &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\CefSharp.snk&quot;&#xD;&#xA;) else if $(PlatformName) == x64 (&#xD;&#xA; call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvars64.bat&quot;&#xD;&#xA; editbin /TSAWARE /STACK:8388608 &quot;$(TargetPath)&quot;&#xD;&#xA; sn -R &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\CefSharp.snk&quot;&#xD;&#xA;) else if $(PlatformName) == arm64 (&#xD;&#xA; call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvarsamd64_arm64.bat&quot;&#xD;&#xA; editbin /TSAWARE /STACK:8388608 &quot;$(TargetPath)&quot;&#xD;&#xA; sn -R &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\CefSharp.snk&quot;&#xD;&#xA;)" />

@coderabbitai coderabbitai Bot Jun 26, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🌐 Web query:

For Visual Studio 2022 C++ command-line environments, what vcvars batch file should be used when the host machine is Windows ARM64 and the target architecture is ARM64?

💡 Result:

When the host machine is Windows ARM64 and you are targeting ARM64, the recommended approach is to use the vcvarsall.bat batch file with the arm64 argument [1]. To initialize the environment, execute the following command in your command-line shell: "C:\Program Files\Microsoft Visual Studio\2022[Edition]\VC\Auxiliary\Build\vcvarsall.bat" arm64 Replace [Edition] with your specific Visual Studio 2022 edition (e.g., Community, Professional, or Enterprise). Using the arm64 argument invokes the native ARM64-hosted toolchain, which is the correct environment for building ARM64 binaries on an ARM64 machine [2][1]. While some cross-compilation batch files exist for other scenarios (such as vcvarsamd64_arm64.bat for x64-to-ARM64 builds), they are not appropriate when the host is already ARM64, as using an emulated or cross-hosted environment can lead to issues, such as the inability to correctly utilize certain compiler switches like /arm64EC [3][2]. Alternatively, Visual Studio 2022 provides an "ARM64 Developer Command Prompt" shortcut in the Start menu that automatically runs this configuration for you [3].

Citations:


Use the native ARM64 vcvars bootstrap here. vcvarsamd64_arm64.bat is the x64→ARM64 cross-environment; on ARM64-hosted VS this should use vcvarsall.bat arm64 (or branch on host architecture) so editbin and sn run under the native ARM64 toolchain.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CefSharp.BrowserSubprocess/CefSharp.BrowserSubprocess.csproj` at line 45, The
build step in CefSharp.BrowserSubprocess.csproj uses the x64-to-ARM64 cross
toolchain for the arm64 branch, which is incorrect for native ARM64 Visual
Studio environments. Update the Exec command in the browser subprocess project
so the arm64 path uses the native ARM64 vcvars bootstrap (or branches on host
architecture to choose the right vcvars entrypoint) before running editbin and
sn, keeping the existing x86 and x64 behavior unchanged.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

CI is only going to cross compile so that's the priority, native compilation support can be added in a follow up PR.

show proposed change for future reference.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@amaitland, makes sense — if CI is only doing x64-hosted cross-compilation for this PR, I’m happy to treat native ARM64-hosted VS support as follow-up work.

For future reference, here’s the shape of the change I had in mind for Line 45, keeping the existing x86/x64 behavior unchanged and only making the arm64 path host-aware:

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
  <Exec Command="if $(PlatformName) == x86 (&`#xD`;&`#xA`;  call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvars32.bat&quot;&`#xD`;&`#xA`;  editbin /largeaddressaware /TSAWARE &quot;$(TargetPath)&quot;&`#xD`;&`#xA`;  sn -R &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\CefSharp.snk&quot;&`#xD`;&`#xA`;) else if $(PlatformName) == x64 (&`#xD`;&`#xA`;  call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvars64.bat&quot;&`#xD`;&`#xA`;  editbin /TSAWARE /STACK:8388608 &quot;$(TargetPath)&quot;&`#xD`;&`#xA`;  sn -R &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\CefSharp.snk&quot;&`#xD`;&`#xA`;) else if $(PlatformName) == arm64 (&`#xD`;&`#xA`;  if /I &quot;%PROCESSOR_ARCHITECTURE%&quot; == &quot;ARM64&quot; (&`#xD`;&`#xA`;    call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvarsall.bat&quot; arm64&`#xD`;&`#xA`;  ) else (&`#xD`;&`#xA`;    call &quot;$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvarsamd64_arm64.bat&quot;&`#xD`;&`#xA`;  )&`#xD`;&`#xA`;  editbin /TSAWARE /STACK:8388608 &quot;$(TargetPath)&quot;&`#xD`;&`#xA`;  sn -R &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\CefSharp.snk&quot;&`#xD`;&`#xA`;)" />
</Target>

That would preserve the current CI path while also handling native ARM64-hosted developer environments later.

If you want, I can also open a follow-up issue for that so it doesn’t get lost.

Comment thread NuGet/CefSharp.Common.targets
@AppVeyorBot

Copy link
Copy Markdown

@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Note

Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.

Fixes Applied Successfully

Fixed 1 file(s) based on 1 unresolved review comment.

A stacked PR containing fixes has been created.

  • Stacked PR: #5268
  • Files modified:
  • CefSharp.BrowserSubprocess/CefSharp.BrowserSubprocess.csproj

Time taken: 2m 46s

@AppVeyorBot

Copy link
Copy Markdown

@AppVeyorBot

Copy link
Copy Markdown

@amaitland
amaitland force-pushed the ter-805-arm64-target branch from 4c02c35 to 43b9ff5 Compare July 25, 2026 06:31

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CefSharp/CefRuntime.cs`:
- Around line 22-25: Update the <param name="basePath"> documentation in both
affected method summaries in CefRuntime to list x64, x86, and arm64 folders,
matching the architecture behavior already described elsewhere. Change
documentation only and preserve the existing parameter wording.
🪄 Autofix

🤖 Coding task started


ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4fc7996e-97e9-4976-b5fb-635dd05cde6d

📥 Commits

Reviewing files that changed from the base of the PR and between 4c02c35 and 43b9ff5.

📒 Files selected for processing (22)
  • CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.vcxproj
  • CefSharp.BrowserSubprocess/CefSharp.BrowserSubprocess.csproj
  • CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj
  • CefSharp.Native.props
  • CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.csproj
  • CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.netcore.csproj
  • CefSharp.Test/CefSharp.Test.csproj
  • CefSharp.Test/CefSharp.Test.netcore.csproj
  • CefSharp.WinForms.Example/CefSharp.WinForms.Example.csproj
  • CefSharp.WinForms.Example/CefSharp.WinForms.Example.netcore.csproj
  • CefSharp.Wpf.Example/CefSharp.Wpf.Example.csproj
  • CefSharp.Wpf.Example/CefSharp.Wpf.Example.netcore.csproj
  • CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.csproj
  • CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.netcore.csproj
  • CefSharp/CefRuntime.cs
  • CefSharp/CefSharp.csproj
  • CefSharp/DependencyChecker.cs
  • CefSharp3.sln
  • NuGet/CefSharp.Common.nuspec
  • NuGet/CefSharp.Common.props
  • NuGet/CefSharp.Common.targets
  • build.ps1
🚧 Files skipped from review as they are similar to previous changes (19)
  • NuGet/CefSharp.Common.props
  • CefSharp.WinForms.Example/CefSharp.WinForms.Example.netcore.csproj
  • CefSharp/DependencyChecker.cs
  • CefSharp.Wpf.Example/CefSharp.Wpf.Example.netcore.csproj
  • CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.netcore.csproj
  • CefSharp.BrowserSubprocess/CefSharp.BrowserSubprocess.csproj
  • CefSharp.Test/CefSharp.Test.netcore.csproj
  • CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.netcore.csproj
  • CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.csproj
  • CefSharp.WinForms.Example/CefSharp.WinForms.Example.csproj
  • NuGet/CefSharp.Common.nuspec
  • CefSharp.Native.props
  • CefSharp/CefSharp.csproj
  • CefSharp3.sln
  • CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.vcxproj
  • CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.csproj
  • CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj
  • NuGet/CefSharp.Common.targets
  • CefSharp.Test/CefSharp.Test.csproj

Comment thread CefSharp/CefRuntime.cs
Comment on lines +22 to +25
/// needs to be loaded (x64/x86/arm64).
/// This method subscribes to the <see cref="AppDomain.AssemblyResolve"/> event
/// for <see cref="AppDomain.CurrentDomain"/> and loads the CefSharp.Core.Runtime.dll
/// based on <see cref="Environment.Is64BitProcess"/>.
/// based on the current process architecture.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Update the remaining path documentation for arm64.

The expanded method summaries still leave the <param name="basePath"> descriptions at Lines 31-32 and 87-88 describing only x64/x86 folders. Include arm64 there as well so the public API documentation matches the new behavior.

📝 Proposed documentation fix
-        /// The path containing the x64/x86 folders which contain the CefSharp/CEF resources.
+        /// The path containing the x64/x86/arm64 folders which contain the CefSharp/CEF resources.

Also applies to: 79-81

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CefSharp/CefRuntime.cs` around lines 22 - 25, Update the <param
name="basePath"> documentation in both affected method summaries in CefRuntime
to list x64, x86, and arm64 folders, matching the architecture behavior already
described elsewhere. Change documentation only and preserve the existing
parameter wording.

@AppVeyorBot

Copy link
Copy Markdown

@M4ttsson M4ttsson mentioned this pull request Aug 31, 2026
9 tasks
@amaitland
amaitland force-pushed the ter-805-arm64-target branch from 165b1ca to d920591 Compare September 4, 2026 22:09
@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

🤖 Completed: Fix CodeRabbit issues in PR #5267View commit 8a8b093

@AppVeyorBot

Copy link
Copy Markdown

@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

@AppVeyorBot: Build CefSharp 151.3.160-CI5614 completed successfully for commit 7d1647f851.

You are interacting with an AI system.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature Request - ARM64 support on .NET Framework 4.8.1

3 participants