我正在将一个WinForm应用从.NET Core 3.1迁移到.NET 5,并出现以下错误:
严重性代码 描述 项目文件 行数 抑制状态 错误NETSDK1136 目标平台必须设置为Windows(通常是通过在TargetFramework属性中包含“-windows”来实现),当使用Windows Forms或WPF或引用这样做的项目或软件包时。 PublicOutput.core C:\Program Files\dotnet\sdk\5.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.DefaultItems.targets 369
这是指向Microsoft.net.sdk.DefaultItems.targets文件中的部分。
<Target Name="_CheckForInvalidWindowsDesktopTargetingConfiguration"
BeforeTargets="_CheckForInvalidConfigurationAndPlatform"
Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionGreaterThanOrEquals($(_TargetFrameworkVersionWithoutV), '5.0')) and ('$(UseWindowsForms)' == 'true' or '$(UseWPF)' == 'true')">
<NETSdkError Condition="'$(TargetPlatformIdentifier)' != 'Windows'"
ResourceName="WindowsDesktopTargetPlatformMustBeWindows" >
我不理解这个错误,而且发送错误链接的页面没有帮助。
我已将我的目标框架设置如下:
<TargetFramework>net5.0</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
非常感谢您的帮助。
<TargetFramework>net5.0</TargetFramework>
。好的,显然这不包括-windows
标志,对吗?请参见https://www.thomasclaudiushuber.com/2020/03/26/net-5-merging-net-core-and-net-standard-with-new-target-framework-monikers-tfms/,其中提到了`net5.0-windows`。 - ADyson