Udostępnij za pośrednictwem


NETSDK1032: RuntimeIdentifier i PlatformTarget muszą być zgodne

Błąd NETSDK1032 występuje, gdy występuje niezgodność między RuntimeIdentifier (RID), takie jak win-x64 lub linux-x64, a PlatformTarget, takie jak x64 lub x86. Pełny komunikat o błędzie jest podobny do następującego przykładu:

Platforma RuntimeIdentifier "{RID}" i PlatformTarget "{Target}" muszą być zgodne.

Identyfikator RID jest określony w pliku projektu lub w wierszu polecenia. Jeśli nie zostanie określony, domyślny używany identyfikator RID jest win-x64 dla systemu Windows, linux-x64 dla systemu Linux i osx-x64 dla systemu macOS.

PlatformTarget jest określony w pliku projektu lub w wierszu polecenia. Jeśli nie zostanie określony, wartość domyślna to AnyCPU.

Oto przykład pliku .csproj z niezgodnymi RID i ustawieniami PlatformTarget:

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

Napraw poprzedni plik .csproj, zmieniając PlatformTarget lub RuntimeIdentifier. Na przykład zmień PlatformTarget, aby pasować do identyfikatora RID:

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

Możesz też zmienić identyfikator RID tak, aby był zgodny z PlatformTarget:

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