引用Asp .Net Core Web Api时如何独立发布WPF应用?
解决WPF引用Swashbuckle.AspNetCore后发布失败的问题
问题原因
Swashbuckle.AspNetCore是为ASP.NET Core量身设计的NuGet包,依赖大量ASP.NET Core运行时组件,而WPF的发布模型和ASP.NET Core存在差异,直接引用会导致发布过程中依赖解析冲突,进而发布失败。
具体解决步骤
拆分依赖,避免直接引用
新建一个.NET 6类库项目,把需要用到Swashbuckle相关功能的代码移到这个类库里。WPF项目只引用这个类库,不直接安装Swashbuckle.AspNetCore包。这样能把ASP.NET Core相关依赖隔离在类库中,不会干扰WPF的发布流程。修改WPF项目配置,排除ASP.NET Core清单
在WPF项目的.csproj文件里添加以下配置,阻止发布工具自动引入ASP.NET Core的目标清单:<PropertyGroup> <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest> </PropertyGroup>统一运行时和目标框架
确认WPF项目、类库项目以及Swashbuckle.AspNetCore包的目标框架都是.NET 6,发布时的目标运行时(比如win-x64)也要在所有项目中保持一致,避免架构不匹配引发的问题。清理缓存后重新发布
删除WPF和类库项目的bin、obj文件夹,清空缓存。然后用命令行执行发布命令,能更直观地查看错误信息:dotnet publish -c Release -r win-x64 --self-contained true
内容的提问来源于stack exchange,提问作者tp1415926535
相关产品推荐
相关产品推荐

