WinUI3应用遇NETSDK1152错误:重复发布Microsoft.Web.WebView2.Core.dll
Template Studio for WinUI与Microsoft.EntityFrameworkCore.SqlServer的WebView2文件冲突问题
是的,这个发布错误确实是Template Studio for WinUI的MSIX打包配置与Microsoft.EntityFrameworkCore.SqlServer依赖包的冲突导致的。
冲突原因
Template Studio在启用MSIX打包功能时,会自动将WebView2运行时相关文件(包括Microsoft.Web.WebView2.Core.dll)放入项目的obj\MsixContent目录,用于WinUI应用的运行时依赖;而安装Microsoft.EntityFrameworkCore.SqlServer 7.0.4版本时,会自动引入Microsoft.Web.WebView2 1.0.864.35这个NuGet包,该包也会输出同名的Microsoft.Web.WebView2.Core.dll文件到发布目录,两者路径完全一致,触发了重复文件检测错误。
可行解决方法
1. 排除NuGet包中的重复文件
在项目的.csproj文件中添加以下配置,让MSIX打包时忽略NuGet包带来的重复文件,保留Template Studio生成的MSIX专属WebView2文件:
<ItemGroup> <Content Remove="Microsoft.Web.WebView2.Core.dll" /> <None Include="Microsoft.Web.WebView2.Core.dll"> <CopyToOutputDirectory>Never</CopyToOutputDirectory> </None> </ItemGroup>
2. 统一WebView2包版本
查看Template Studio生成项目中WebView2的实际版本(可通过obj\MsixContent目录下文件的版本信息,或项目依赖项中的WebView2版本确认),手动安装对应版本的Microsoft.Web.WebView2包,覆盖EF自动安装的旧版本:
Install-Package Microsoft.Web.WebView2 -Version [Template Studio使用的版本号]
版本统一后,两个来源的文件完全一致,不会触发重复检测错误。
为什么之前的尝试无效
- 设置
<ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles>只是屏蔽了错误提示,但MSIX打包时的文件重复会导致后续签名、部署环节失败,无法根本解决问题。 - 删除bin/obj目录重建只是清理了缓存文件,但项目依赖关系未改变,构建时仍会生成重复文件,因此问题依旧。
内容的提问来源于stack exchange,提问作者Mladen Gavrić
相关产品推荐
相关产品推荐

