NETSDK1100:将 EnableWindowsTargeting 属性设置为 true

NETSDK1100 指示正在生成面向 Linux 或 macOS 上的 Windows 的项目。 完整的错误消息类似于以下示例:

若要生成面向此操作系统上的 Windows 的项目,请将 EnableWindowsTargeting 属性设置为 true。

若要解决此错误,请将 EnableWindowsTargeting 属性设置为 true。 可以在项目文件中设置它,也可以通过将 /p:EnableWindowsTargeting=true 传递给 .NET CLI 命令(例如 dotnet build)进行设置。 下面是一个示例项目文件:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <EnableWindowsTargeting>true</EnableWindowsTargeting>
  </PropertyGroup>
</Project>

如果要将此设置应用于整个解决方案或存储库,可以在 Directory.Build.props 文件中对其进行设置。

默认情况下,无论是否需要,.NET 都会下载当前目标框架的所有目标包(以及自包含生成的运行时包),因为它们可能由可传递框架引用引入。 我们不希望随非 Windows SDK 版本提供 Windows 目标包,但我们也不希望 vanilla 控制台或 ASP.NET Core 应用在你首次生成时自动下载这些目标包和运行时包。 EnableWindowsTargeting 属性仅在你选择加入时才允许下载这些包。

另请参阅