dotnet run (en Windows) provoca warning CA1416: This call site is reachable on all platforms. 'WellKnownSidType.WorldSid' is only supported on: 'windows'.
Mi programa está diseñado para ejecutarse solo en Windows.
Traté de agregar SupportedPlatform a MyApp.csproj , pero no tuve suerte.
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net5.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.Authentication.Negotiate" Version="5.0.5" /> <PackageReference Include="System.DirectoryServices" Version="5.0.0" /> <SupportedPlatform Include="Windows"/> </ItemGroup> </Project> ¿Qué estoy haciendo mal? ¿Cómo puedo mostrar dotnet run que este proyecto es solo para Windows?
Puede marcar cada método específico de Windows con System.Runtime.Versioning.SupportedOSPlatformAttribute , por ejemplo
[SupportedOSPlatform("windows")] public static void Foo() => Thread.CurrentThread.SetApartmentState(ApartmentState.STA);Marque todo el ensamblaje con AssemblyInfo (si tiene uno)
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] O edite el archivo .csproj para apuntar a la versión específica de Windows de dotnet para que estos cambios sean automáticos
<TargetFramework>net5.0-windows</TargetFramework>