Поделиться через


NETSDK1032: RuntimeIdentifier и PlatformTarget должны быть совместимыми

Ошибка NETSDK1032 возникает при несоответствии между RuntimeIdentifier (RID), например win-x64 или linux-x64, и PlatformTarget, например x64 или x86. Полное сообщение об ошибке аналогично следующему примеру:

Платформа RuntimeIdentifier "{RID}" и PlatformTarget "{Target}" должна быть совместима.

RID указывается в файле проекта или командной строке. Если этот параметр не указан, используется параметр RID по умолчанию win-x64 для Windows, linux-x64 для Linux и osx-x64 для macOS.

PlatformTarget указывается в файле проекта или командной строке. Если значение не указано, значение по умолчанию — AnyCPU.

Ниже приведен пример файла .csproj с несовместимыми параметрами RID и PlatformTarget:

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

Исправьте предыдущий файл .csproj, изменив PlatformTarget или RuntimeIdentifier. Например, измените PlatformTarget на соответствие RID:

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

Или измените RID, чтобы он соответствовал PlatformTarget:

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