【发布时间】:2022-08-12 16:01:36
【问题描述】:
我目前正在使用 .NET 升级助手作为基础将我的 WPF 项目从 .NET Framework 4.8 迁移到 .NET 6,然后手动修复剩余的问题。
我所有的项目都有一组共享的库,其中一个包含标准类和一些自定义UserControl。将此特定库迁移到 .NET 6 时,此库引用的框架是 Microsoft.NETCore.App 和 Microsoft.WindowsDesktop.App。问题是当我尝试在另一个项目中使用这个库时,我收到以下警告:
警告 MSB3277 发现不同版本的 \"WindowsBase\" 之间存在无法解决的冲突。
\"WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\" 和 \"WindowsBase, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\" 之间存在冲突。
\"WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\" 被选中是因为它是主要的,而 \"WindowsBase, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\" 不是。查看库引用的两个框架所引用的 WindowsBase,我看到
Microsoft.NETCore.App引用了 WindowsBase v4.0.0.0,而Microsoft.WindowsDesktop.App引用了 WindowsBase v6.0.0.0。
我该如何解决这个问题?
-
尝试删除
WindowsBase依赖项,然后使用正确的版本再次添加它。 -
在 Visual Studio 中,我找不到从引用的框架中删除依赖项的方法。也许有办法手动完成?
-
在该菜单中,您只看到解决方案的其他项目的依赖关系,而不是项目引用的框架所依赖的依赖关系
-
不编译的工程的工程文件长什么样?