Skip to content

fix: ensure CDP-only package is compiled without WebDriverBiDi references#3478

Merged
kblok merged 2 commits into
masterfrom
fix-issue-3477
Jun 12, 2026
Merged

fix: ensure CDP-only package is compiled without WebDriverBiDi references#3478
kblok merged 2 commits into
masterfrom
fix-issue-3477

Conversation

@kblok

@kblok kblok commented Jun 11, 2026

Copy link
Copy Markdown
Member

Fixes #3477

The PuppeteerSharp.Cdp package was shipping a DLL that still referenced WebDriverBiDi types, even though the nuspec correctly excluded the dependency. At runtime the CLR would try to load WebDriverBiDi, fail, and throw FileNotFoundException.

Root cause: MSBuild's incremental build skipped recompilation when the CI workflow switched from the normal build to a CDP_ONLY pack. The normal-build DLL (with BiDi IL) was considered up-to-date by timestamp, so it was bundled as-is into the CDP package.

The fix is two-pronged:

  • Split "Build and Pack" into two steps: dotnet build --no-incremental (forces a fresh CDP_ONLY compile) followed by dotnet pack --no-build (packages the correct DLL without rebuilding again).
  • Skip the dotnet format pre-build hook for CDP_ONLY builds — dotnet format was doing an implicit restore that put WebDriverBiDi back into project.assets.json, which would corrupt the nuspec.

🤖 Generated with Claude Code

kblok and others added 2 commits June 11, 2026 12:17
…nces (#3477)

MSBuild's incremental build skipped recompilation when switching from a
normal build to a CDP_ONLY build, causing the published PuppeteerSharp.Cdp
DLL to still contain WebDriverBiDi IL references while the nuspec correctly
excluded the dependency — triggering a FileNotFoundException at runtime.

Fix: force a clean CDP_ONLY recompile with --no-incremental, then pack the
already-built artifacts with --no-build. Also skip the dotnet format
pre-build hook for CDP_ONLY builds to prevent it from restoring WebDriverBiDi
back into project.assets.json.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@kblok kblok merged commit db9b160 into master Jun 12, 2026
16 checks passed
@kblok kblok deleted the fix-issue-3477 branch June 12, 2026 14:47
sondresjolyst pushed a commit to sondresjolyst/garge-api that referenced this pull request Jun 29, 2026
Updated [PuppeteerSharp](https://github.com/hardkoded/puppeteer-sharp)
from 25.1.0 to 25.1.2.

<details>
<summary>Release notes</summary>

_Sourced from [PuppeteerSharp's
releases](https://github.com/hardkoded/puppeteer-sharp/releases)._

## 25.1.2

## What's Changed
* fix: open a new window when creating a page with no existing targets
by @​kblok in hardkoded/puppeteer-sharp#3481
* fix: support WebDriverBiDi 0.0.54+ (fixes #​3479) by @​kblok in
hardkoded/puppeteer-sharp#3480


**Full Changelog**:
hardkoded/puppeteer-sharp@v25.1.1...v25.1.2

## 25.1.1

## What's Changed
* Avoid leaking TargetChangedArgs event handlers by @​jnyrup in
hardkoded/puppeteer-sharp#3476
* fix: ensure CDP-only package is compiled without WebDriverBiDi
references by @​kblok in
hardkoded/puppeteer-sharp#3478


**Full Changelog**:
hardkoded/puppeteer-sharp@v25.1.0...v25.1.1

Commits viewable in [compare
view](hardkoded/puppeteer-sharp@v25.1.0...v25.1.2).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=PuppeteerSharp&package-manager=nuget&previous-version=25.1.0&new-version=25.1.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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.

WebDriverBiDi not found exception when using CDP only package

1 participant