Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
Most “Could not load file or assembly Select.HtmlToPdf” errors on SharePoint come from a mismatch between the DLL the web application requests and the files, versions, framework target, or configuration actually deployed. Capture the full exception, verify that the package variant matches the SharePoint process, remove stale copies, deploy the companion files and dependencies, and only then consider a binding redirect. There is no published SharePoint 2026 compatibility matrix or universal redirect for this library, so the exact fix has to follow the failing farm’s assembly identity and loader evidence.
What the error means
SharePoint’s .NET Framework worker process asked the runtime to load an assembly named Select.HtmlToPdf, but the runtime could not resolve a usable assembly that matched the request. “Could not load file or assembly” is a broad family of failures, not proof that one particular DLL is missing. The file may be absent, the wrong version may have been found, a dependency may be missing, or the binary may not be suitable for the process.
The .NET Framework loader considers configuration and policy, assemblies already loaded into the process, the Global Assembly Cache (GAC) for strong-named assemblies, and configured or probed locations. A stale GAC entry or another deployed copy can therefore matter even when a DLL appears in the web application’s bin directory. Binding failures are cached in the process, so repeating the same request may continue to fail until the cause is corrected and the affected process is recycled. See Microsoft’s explanation of how the runtime locates assemblies.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Start with the complete exception rather than changing configuration based only on the short error text. Record the assembly identity and the process that emitted the failure; these determine which package, deployment location, and configuration are relevant.
#1 Best Overall
Collect the evidence before changing the farm
- Capture the complete exception. Include the requested simple name, version, culture, public key token, inner exception, and full stack trace. Note the SharePoint worker process or web application associated with the request.
- Classify the failure wording. A missing-file message points toward deployment or probing. “Manifest definition does not match” usually indicates that the version or identity found differs from the one requested. A
BadImageFormatExceptionpoints toward architecture or binary compatibility, so investigate the process architecture and package before trying a redirect. - Record what is deployed. Identify the Select.HtmlToPdf and Select.Pdf assemblies used by the application, including their manifest versions and public key tokens. Check the intended bin deployment, the GAC, and other SharePoint solution deployment locations for older or duplicate copies.
- Establish the actual target framework and engine. Confirm the framework targeted by the application and whether the converter is configured for WebKit or Blink. These facts affect which distribution, dependencies, and renderer files belong with the application.
Do not infer the needed redirect from the version shown in a package name alone. A redirect must match the assembly identity and version range involved in the actual runtime failure.
Fix the deployment in a safe order
1. Select the package variant that fits the application
The NuGet listing for Select.HtmlToPdf lists version 26.3.0 and describes that package as intended for .NET Framework up to 4.5. For newer .NET Framework targets and .NET 5–10, it points to Select.HtmlToPdf.NetCore instead. SelectPdf also describes separate CLR 2.0, CLR 4.0, and modern .NET distributions in its installation documentation. Do not treat those variants as interchangeable: first establish the application’s actual target and then deploy the matching distribution.
The NuGet page also identifies Select.HtmlToPdf 26.3.0 as a Windows HTML-to-PDF converter and reports a five-page limit for its free Community Edition. That is a product limitation, not an assembly-loading remedy.
Rank #2
2. Remove duplicate and stale assemblies
Make the application’s intended bin deployment contain one deliberate, compatible set of Select.HtmlToPdf and Select.Pdf assemblies. Then check the GAC and other SharePoint deployment locations for competing versions. If the loader binds to a stale strong-named copy, replacing only the file in bin may leave the resolution problem unchanged. Use loader diagnostics in the next step to confirm which copy was selected rather than assuming the nearest-looking file won.
3. Deploy SelectPdf’s companion files and dependencies
SelectPdf’s installation instructions say that Select.Pdf.dll must be accompanied by Select.Html.dep and Select.Tools.dep in the application bin folder. The documentation identifies the first as used by the HTML-to-PDF converter and the second by PDF-to-text and PDF-to-image conversion. Confirm these files are present in the deployment used by the affected web application, not merely on a developer workstation.
For the documented .NET Framework 4.6.1/4.7.2 and .NET Core targets, SelectPdf lists additional NuGet dependencies, including Newtonsoft.Json, System.Buffers, System.Numerics.Vectors, and System.Threading.Tasks.Extensions. Check the installation instructions for the package variant and target you actually selected; a missing dependency can surface as a load failure even when the primary DLL exists.
Rank #3
4. Include Blink files only when Blink is the selected engine
If the converter uses Blink, SelectPdf says the matching Chromium/Blink package or Chromium folder is required; its installation documentation describes copying that folder into the bin directory. Verify that the renderer binaries correspond to the selected distribution and are included in the deployed application. If the application uses WebKit, do not add Blink files as a speculative fix: first confirm which engine the converter is configured to use.
Recommended Free Tools
5. Add a binding redirect only when the evidence supports it
A redirect can resolve a genuine version conflict by telling the .NET Framework runtime to use the deployed version for a specified range of older requests. It does not install a missing file, supply a missing dependency, or make an incompatible binary suitable for the worker process. Microsoft documents the bindingRedirect element and gives an illustrative form with oldVersion="1.0.0.0-2.0.0.0" and newVersion="3.0.0.0"; those numbers are examples, not SelectPdf production values. See Microsoft’s binding redirect guidance.
For a SharePoint web application, make a narrow redirect in the applicable web application configuration only after comparing the failing request with the deployed DLL manifest. The configuration must use a runtime element containing assemblyBinding in the urn:schemas-microsoft-com:asm.v1 namespace, with a dependentAssembly entry for the exact assembly identity. Set the old-version range and new version from the observed request and deployed assembly; do not copy Microsoft’s example numbers or guess the public key token. The reviewed documentation does not establish a universal Select.HtmlToPdf redirect or a single configuration path that applies to every SharePoint farm, so verify the configuration mechanism for the affected web application.
Rank #4
6. Confirm the loader’s decision and recycle the right process
Use Fusion binding logs or equivalent loader diagnostics to see which configuration file, codebase, GAC entry, and probing path the runtime actually used. Compare that evidence with the deployment manifest and correct the source of the mismatch. After making the deployment or configuration change, recycle the affected SharePoint web application and retest; cached bind failures may otherwise obscure whether the correction worked.
Avoid editing machine.config to solve a site-specific problem. Microsoft notes that machine-level redirects affect all applications on the computer, while the failure may be limited to one web application.
How to tell which fix is appropriate
| Evidence | Most relevant check |
|---|---|
| Requested DLL cannot be found | Confirm the selected package variant and deployment/probing location; verify the DLL is present in the application deployment. |
| Manifest definition does not match | Compare requested and deployed version, culture, and public key token; check for competing GAC or bin copies before considering a narrow redirect. |
BadImageFormatException |
Check process architecture and whether the binary is compatible with the worker process; do not treat a redirect as an architecture fix. |
| Primary DLL exists but load still fails | Check Select.Html.dep, Select.Tools.dep, target-specific NuGet dependencies, and the loader log for the actual missing assembly. |
| Failure occurs when Blink is used | Confirm the matching Chromium/Blink package or folder is deployed with the application. |
This is a diagnostic mapping, not a SharePoint-wide compatibility guarantee. The same short exception text can result from different assembly identities or deployment paths; the full exception and binding log decide which row applies.
Best Value
Common mistakes that keep the error alive
- Installing the first package with a similar name: verify the framework target and select the corresponding SelectPdf distribution before deployment.
- Updating only the main DLL: deploy the required companion files and target-specific dependencies alongside it.
- Adding a broad redirect to silence the exception: use only the exact identity and version range justified by the request and deployed manifest.
- Checking only the bin directory: inspect the GAC, other SharePoint deployment locations, and loader logs for the copy actually loaded.
- Changing machine-wide configuration for one application: prefer the applicable web application configuration and avoid affecting other applications unnecessarily.
- Retesting without recycling after a bind failure: the process may have cached the prior failure, so recycle the affected application after correcting the cause.
Performance, reliability, and licensing considerations
Assembly resolution problems are deployment and runtime-loading problems; the evidence here does not establish a general performance penalty or a SharePoint-specific reliability score for SelectPdf. Before changing a working renderer or framework target, verify the exact package requirements and test the deployed configuration in the intended farm context. A redirect can change which binary the runtime loads, so it should be treated as a compatibility change and checked against the application’s required conversion behavior.
The NuGet listing’s five-page limit applies to the free Community Edition described there. Check the vendor’s current terms for the edition in use; the assembly-resolution sources do not establish pricing or licensing conditions beyond that stated Community Edition limit.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server, not a Select.HtmlToPdf DLL or a remedy for SharePoint assembly resolution. It can help capture a rendered web page when you need a visual record of an accessible URL, but it will not repair the loader failure described above. One GET request returns an image or PDF. For example, to capture a public page as WebP:
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Quick Recap
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo documentation for API parameters and setup. Cookie or consent banners are accepted like a visitor and more than 60 known consent platforms, newsletter popups, and chat widgets are removed before capture; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and each response reports the page verdict and billing status in headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents. The free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Learn about ScreenshotNeo, or sign up for 1,000 free screenshots a month with no card.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

