GHES自托管Runner构建vdproj遇HRESULT=80004005验证错误求助
解决.NET Framework 4.7.2项目vdproj构建HRESULT=80004005错误(关联CefSharp依赖)
1. 校验CefSharp依赖路径匹配
- 确认nuget restore完成后,
CefSharp.BrowserSubprocess.exe、CefSharp.BrowserSubprocess.Core.dll等文件的实际存储路径,确保vdproj的依赖检测范围包含该目录。 - 手动编辑vdproj文件,定位到对应依赖的
<File>节点,修正SourcePath为文件的正确路径(可指向项目输出目录或nuget包内的对应版本文件夹)。
2. 关闭自动依赖检测,手动管理依赖
- 打开vdproj项目属性,进入系统必备设置,取消“自动检测依赖项”勾选。
- 将CefSharp相关程序集手动添加到vdproj的文件列表中,同时勾选每个文件的“排除依赖项”选项,避免重复执行签名与版本验证。
3. 优化构建流程与环境变量
- 确保ClickOnce项目构建完成后,所有CefSharp依赖文件已被复制到vdproj指定的输入目录,再执行vdproj构建步骤。
- 在GitHub Actions构建脚本中添加环境变量:
MSBUILDDISABLENODEREUSE=1,防止构建进程残留引发文件锁定或依赖读取异常。
4. 添加VS2022注册表项跳过依赖验证
- 除已设置的
EnableOutOfProcBuild=0和DisableOutOfProcBuild=1,新增以下注册表配置:- 路径:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\17.0_<VS实例ID>\Projects\{A1591282-1198-4647-A2B1-27E5FF5F6F3B}(<VS实例ID>可在VS安装目录或注册表中查找) - 创建DWORD值
SkipDependencyValidation,设置为1,直接跳过vdproj的依赖校验环节。
- 路径:
5. 改用MSBuild直接构建vdproj
- 替换devenv.com构建方式,使用MSBuild命令直接构建vdproj,示例命令:
msbuild YourProject.vdproj /t:Build /p:Configuration=Release /p:Platform=x86 - 执行前需加载VS2022的开发者命令行环境,确保MSBuild能调用到vdproj的构建工具。
内容的提问来源于stack exchange,提问作者Frank Junior Reyes Batista
相关产品推荐
相关产品推荐

