次の方法で共有


NETSDK1032: RuntimeIdentifier と PlatformTarget は互換性がある必要があります

エラー NETSDK1032 は、win-x64linux-x64などの RuntimeIdentifier (RID) と、x64x86などの PlatformTargetが一致しない場合に発生します。 完全なエラー メッセージは、次の例のようになります。

RuntimeIdentifier プラットフォーム '{RID}' と PlatformTarget '{Target}' は互換性がある必要があります。

RID は、プロジェクト ファイルまたはコマンド ラインで指定します。 指定しない場合、Windows 用の既定の RID は win-x64、Linux 用は linux-x64、macOS 用は osx-x64 です。

PlatformTarget は、プロジェクト ファイルまたはコマンド ラインで指定します。 指定しない場合、既定値は AnyCPUです。

互換性のない RID と PlatformTarget 設定を持つ .csproj ファイルの例を次に示します。

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

PlatformTarget または RuntimeIdentifierを変更して、上記の .csproj ファイルを修正します。 たとえば、RID に一致するように PlatformTarget を変更します。

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

または、PlatformTargetに一致するように RID を変更します。

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