Dela via


NETSDK1032: RuntimeIdentifier och PlatformTarget måste vara kompatibla

Felet NETSDK1032 uppstår när det finns ett matchningsfel mellan RuntimeIdentifier (RID), till exempel win-x64 eller linux-x64och PlatformTarget, till exempel x64 eller x86. Det fullständiga felmeddelandet liknar följande exempel:

RuntimeIdentifier-plattformen {RID} och PlatformTarget {Target} måste vara kompatibla.

RID anges i projektfilen eller kommandoraden. Om det inte anges är standard-RID som används win-x64 för Windows, linux-x64 för Linux och osx-x64 för macOS.

PlatformTarget anges i projektfilen eller kommandoraden. Om det inte anges är standardvärdet AnyCPU.

Här är ett exempel på en .csproj fil med inkompatibla RID- och PlatformTarget-inställningar:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0</TargetFramework>
    <PlatformTarget>x86</PlatformTarget>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
  </PropertyGroup>
</Project>

Åtgärda den föregående .csproj-filen genom att ändra antingen PlatformTarget eller RuntimeIdentifier. Du kan till exempel ändra PlatformTarget så att den matchar RID:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0</TargetFramework>
    <PlatformTarget>x64</PlatformTarget>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
  </PropertyGroup>
</Project>

Eller ändra RID så att det matchar PlatformTarget:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0</TargetFramework>
    <PlatformTarget>x86</PlatformTarget>
    <RuntimeIdentifier>win-x86</RuntimeIdentifier>
  </PropertyGroup>
</Project>