64位可执行程序加载WebView2Loader.dll失败问题求助
Hey,这个问题我之前碰到过,一眼就看出是32位/64位 DLL 架构不匹配搞的鬼,给你几个靠谱的解决思路:
解决64位程序加载WebView2Loader.dll失败的思路
检查DLL的架构匹配性
你看到的错误提示%1 is not a valid Win32 application本质是64位程序尝试加载32位DLL导致的。要确保你用的WebView2Loader.dll是x64版本:- 如果是手动放在程序目录,去WebView2 SDK的x64子目录下提取对应DLL,别拿x86版本凑数;
- 如果是用Evergreen Runtime,必须安装x64版本的Runtime,32位Runtime和64位程序完全不兼容。
精准指定DLL加载路径
Windows的DLL搜索顺序可能导致64位程序误加载系统里已有的32位DLL。你可以改用LoadLibraryEx指定绝对路径来测试,比如:Windows.LoadLibraryEx(PChar('C:\YourApp\bin\x64\WebView2Loader.dll'), 0, LOAD_WITH_ALTERED_SEARCH_PATH);先确认绝对路径下的正确DLL能加载成功,再排查路径搜索的问题。
验证Evergreen Runtime的安装状态
64位系统上,x64版本的WebView2 Runtime会安装在C:\Program Files\Microsoft\EdgeWebView2\Application\路径下,而32位版本在Program Files (x86)目录。你可以:- 打开「控制面板→程序和功能」,确认存在「Microsoft Edge WebView2 Runtime (x64)」条目;
- 如果没有,重新下载对应架构的Evergreen安装包并安装,别选错位数。
检查项目编译配置
确保你的64位程序确实是按x64架构编译的:- 在你使用的IDE里,确认项目的目标平台设置为
Win64,而不是Win32或者模糊的“Any CPU”; - 检查输出目录里的所有依赖文件,确保没有混入32位的DLL。
- 在你使用的IDE里,确认项目的目标平台设置为
用工具确认DLL架构
可以用VS自带的dumpbin工具验证DLL的位数:dumpbin /headers WebView2Loader.dll查看输出中的
machine字段,x64版本会显示x64,x86版本显示x86。如果发现是x86的DLL,直接替换成x64版本即可。
内容的提问来源于stack exchange,提问作者Tom




