使用WebView2时出现lib_manual引用缺失问题
解决.NET Framework 4.8项目中WebView2重复添加错误引用的问题
问题原因
这是WebView2 NuGet包的.targets文件在项目加载时,错误地为.NET Framework项目引入了.NET Core/.NET 6平台的引用条目,导致VS每次重新加载项目都会自动添加这些不存在的引用。
解决步骤
1. 手动编辑项目文件(.csproj)
关闭Visual Studio,找到项目的.csproj文件,用文本编辑器打开:
- 查找所有指向
lib_manual目录下的引用节点,例如:<Reference Include="Microsoft.Web.WebView2.Core, Version=1.0.2651.64, Culture=neutral, PublicKeyToken=2a8ab48044d2601e, processorArchitecture=MSIL"> <HintPath>..\packages\Microsoft.Web.WebView2.1.0.2651.64\build..\lib_manual\netcoreapp3.0\Microsoft.Web.WebView2.Core.dll</HintPath> </Reference> - 删除所有这类错误的引用节点,仅保留指向
lib/net462目录的正确引用。
2. 移除WebView2的自动导入目标
在.csproj文件中,查找类似以下的导入语句:
<Import Project="..\packages\Microsoft.Web.WebView2.1.0.2651.64\build\Microsoft.Web.WebView2.targets" Condition="Exists('..\packages\Microsoft.Web.WebView2.1.0.2651.64\build\Microsoft.Web.WebView2.targets')" />
直接注释或删除这条导入(如果项目仅针对.NET Framework):
<!-- 注释自动导入以避免错误引用被重复添加 --> <!-- <Import Project="..\packages\Microsoft.Web.WebView2.1.0.2651.64\build\Microsoft.Web.WebView2.targets" Condition="Exists('..\packages\Microsoft.Web.WebView2.1.0.2651.64\build\Microsoft.Web.WebView2.targets')" /> -->
3. 清理NuGet缓存并重新还原
打开Visual Studio的工具 -> NuGet包管理器 -> 包管理器设置,点击清除所有NuGet缓存,然后右键项目选择还原NuGet包。
4. 验证修复
重新打开项目,检查引用列表,确认错误的lib_manual目录引用不再出现,编译项目确保正常运行。
额外建议
如果后续更新WebView2包后再次出现该问题,重复上述步骤即可。也可以尝试降级到WebView2的旧稳定版本(比如1.0.2526.47),部分用户反馈旧版本不会触发这个问题。
内容的提问来源于stack exchange,提问作者sbarnby71
相关产品推荐
相关产品推荐

