NETSDK1100: impostare la proprietà EnableWindowsTargeting su true

NETSDK1100 indica che si sta creando un progetto destinato a Windows in Linux o macOS. Il messaggio di errore completo è simile all'esempio seguente:

Per compilare un progetto destinato a Windows in questo sistema operativo, impostare la proprietà EnableWindowsTargeting su true.

Per risolvere questo errore, impostare la proprietà EnableWindowsTargeting su true. È possibile impostarlo nel file di progetto o passando /p:EnableWindowsTargeting=true a un comando dell'interfaccia della riga di comando .NET, ad esempio dotnet build. Segue un esempio di file di progetto:

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

Se si vuole applicare questa impostazione a tutta la soluzione o al repository, è possibile impostarla in un file Directory.Build.props.

Per impostazione predefinita, .NET scarica tutti i pacchetti di destinazione (e i pacchetti di runtime per le compilazioni autonome) per il framework di destinazione corrente, indipendentemente dal fatto che siano necessari o meno, perché potrebbero essere inseriti da un riferimento transitivo al framework. Non volevamo spedire i pacchetti di destinazione di Windows con le build non di Windows SDK, ma non volevamo nemmeno che una console Vanilla o un'app ASP.NET Core scaricasse automaticamente questi pacchetti di destinazione e runtime alla prima compilazione. La proprietà EnableWindowsTargeting consente il download solo previo consenso esplicito.

Vedi anche