NETSDK1100: Festlegen der Eigenschaft „EnableWindowsTargeting“ auf „true“
NETSDK1100 weist darauf hin, dass Sie ein Projekt kompilieren, das auf Windows unter Linux oder macOS ausgerichtet ist. Die vollständige Fehlermeldung ähnelt dem folgenden Beispiel:
Um ein Projekt für Windows unter diesem Betriebssystem zu kompilieren, legen Sie die Eigenschaft
EnableWindowsTargeting
auf „true“ fest.
Um diesen Fehler zu beheben, legen Sie die Eigenschaft EnableWindowsTargeting
auf „true“ fest. Sie können sie in der Projektdatei festlegen oder /p:EnableWindowsTargeting=true
an einen .NET CLI-Befehl übergeben, z. B. dotnet build
. Hier sehen Sie eine Beispielprojektdatei:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<EnableWindowsTargeting>true</EnableWindowsTargeting>
</PropertyGroup>
</Project>
Wenn Sie diese Einstellung auf die gesamte Lösung oder das gesamte Repository anwenden möchten, können Sie sie in einer Directory.Build.props-Datei festlegen.
Standardmäßig lädt .NET alle Zielpakete (und Laufzeitpakete für eigenständige Builds) für das aktuelle Zielframework herunter, unabhängig davon, ob sie benötigt werden oder nicht, da sie möglicherweise durch einen transitiven Frameworkverweis bereitgestellt werden. Wir wollten die Windows-Zielpakete nicht zusammen mit den Nicht-Windows SDK-Builds ausliefern, aber wir wollten auch nicht, dass irgendeine einfache Konsolen- oder ASP.NET Core-App diese Ziel- und Laufzeitpakete beim ersten Kompilieren automatisch herunterlädt. Die Eigenschaft EnableWindowsTargeting
sorgt dafür, dass die Pakete nur heruntergeladen werden, wenn Sie dies aktivieren.