NETSDK1135 SupportedOSPlatformVersion 10.0.19041.0 不能高于TargetPlatformVersion 7.0

NETSDK1135 SupportedOSPlatformVersion 10.0.19041.0 cannot be higher than TargetPlatformVersion 7.0

我正在尝试将 .NET Framework WPF 应用程序转换为 .NET 5

我 运行 https://github.com/dotnet/try-convert,并删除了一些不兼容的 DLL 引用。

现在,当我尝试编译时,出现

NETSDK1135  SupportedOSPlatformVersion 10.0.19041.0 cannot be higher than TargetPlatformVersion 7.0

关于寻找什么的任何想法? 有问题的项目是 .NET 5 和 .NET Standard 2.1

的组合

几个小时前我遇到了同样的错误。 我发现这篇文章很有用:https://nicksnettravels.builttoroam.com/net-5-tfms/ 据我了解,项目文件中的 TargetFrameWork 必须包含与 SDK 合同相同的 Windows 版本。 我的项目文件现在看起来像这样:

  <PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>
<UseWPF>true</UseWPF>
...
  <ItemGroup>
    <PackageReference Include="Microsoft.Windows.CsWinRT" Version="1.1.0" />
    <PackageReference Include="Microsoft.Windows.SDK.Contracts" Version="10.0.19041.1" />
  </ItemGroup>

...

希望对你有用。

我在添加 Microsoft.Windows.SDK.Contracts 以读取使用 MSIX 包打包期间应用的版本时出现此问题。

我尝试了@RolandJS 的解决方案,但仍然有很多错误。

找到:https://docs.microsoft.com/en-us/windows/apps/desktop/modernize/desktop-to-uwp-enhance

它提到自 .NET 5(或更高版本)和目标 Windows 10,版本 1809 或更高版本以来,Microsoft.Windows.SDK.Contracts不再 需要了。相反,您应该使用 TargetFrameworkMoniker (TFM)。

正如 RolandJS 已经提到的: 在项目文件中更改

<TargetFramework>net5.0-windows</TargetFramework>

例如

<TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>

卸载Microsoft.Windows.SDK.Contracts