NETSDK1135:SupportedOSPlatformVersion 10.0.19041.0 不能高于 TargetPlatformVersion 7.0。

19

我正在尝试将一个 .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 组合而成的。

2个回答

18

几个小时前我也遇到了同样的错误。 我发现这篇文章很有用: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>

希望这对您有所帮助。


15
这个问题出现在我添加Microsoft.Windows.SDK.Contracts以读取使用MSIX包进行打包时应用的版本时。
我尝试了@RolandJS的解决方案,但仍然有很多错误。
找到了https://learn.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


这正是我所需要的!谢谢。 - aherrick
我希望我能够点赞15次。这应该是最佳答案!! - tmighty

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接