Teilen über


NETSDK1032: RuntimeIdentifier und PlatformTarget müssen kompatibel sein

Der Fehler NETSDK1032 tritt auf, wenn ein Konflikt zwischen dem RuntimeIdentifier (RID), z. B. win-x64 oder linux-x64, und dem PlatformTargetauftritt, z. B. x64 oder x86. Die vollständige Fehlermeldung ähnelt dem folgenden Beispiel:

Die RuntimeIdentifier Plattform '{RID}' und die PlatformTarget '{Target}' müssen kompatibel sein.

Die RID wird in der Projektdatei oder in der Befehlszeile angegeben. Wenn nicht angegeben, wird als Standard-RID win-x64 für Windows, linux-x64 für Linux und osx-x64 für macOS verwendet.

Die PlatformTarget wird in der Projektdatei oder in der Befehlszeile angegeben. Wenn nicht angegeben, ist die Standardeinstellung AnyCPU.

Hier ist ein Beispiel für eine .csproj Datei mit inkompatiblen RID- und PlatformTarget-Einstellungen:

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

Korrigieren Sie die vorherige .csproj Datei, indem Sie entweder PlatformTarget oder RuntimeIdentifierändern. Ändern Sie z. B. PlatformTarget so, dass sie dem RID entsprechen:

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

Oder ändern Sie die RID so, dass sie mit dem PlatformTargetübereinstimmt:

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