如何消除 .NET 5 WPF 程序中的警告 NETSDK1137?

How can I eliminate warning NETSDK1137 in a .NET 5 WPF program?

我在以前为 .NET Framework 4.5 构建但现在为 .NET 5 构建的 WPF 程序中收到以下警告。

Warning NETSDK1137  It is no longer necessary to use the Microsoft.NET.Sdk.WindowsDesktop SDK. 
    
Consider changing the Sdk attribute of the root Project element to 'Microsoft.NET.Sdk'. 
    
ListEditor 

C:\Program Files\dotnet\sdk.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.DefaultItems.targets   376 

单击警告将在第 376 行打开文件 Microsoft.NET.Sdk.DefaultItems.targets。该文件以注释 DO NOT MODIFY.

开头
<!--
***********************************************************************************************
Microsoft.NET.Sdk.DefaultItems.targets

WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
          created a backup copy.  Incorrect changes to this file will make it
          impossible to load or build your projects from the command-line or the IDE.

Copyright (c) .NET Foundation. All rights reserved. 
***********************************************************************************************
-->

第 376 行属于这个 XML 元素...

  <Target Name="_CheckForUnnecessaryWindowsDesktopSDK"
        BeforeTargets="_CheckForInvalidConfigurationAndPlatform"
        Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionGreaterThanOrEquals($(_TargetFrameworkVersionWithoutV), '5.0')) and '$(_MicrosoftWindowsDesktopSdkImported)' == 'true' and '$(TargetFrameworks)' == ''">
    <NETSdkWarning ResourceName="UnnecessaryWindowsDesktopSDK" />
  </Target>

有一个包含整个文件的项目元素。元素是这个...

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    ...omissions...
</Project>

由于该元素未提及 Microsoft.NET.Sdk.WindowsDesktop SDK Project 元素似乎不是应该放置替换 Microsoft.NET.Sdk 的点。

如何消除此警告的原因?

您的 项目,.csproj 文件,而不是 MsBuild 目标 xml。将顶行更改为以下内容:

<Project Sdk="Microsoft.NET.Sdk">

将旧项目移植到 .Net 5 时会发生这种情况。

搜索 Project Sdk= 以打开您的 .csproj 文件, 并将第一行更正为 <Project Sdk="Microsoft.NET.Sdk">.

这应该可以修复警告。