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}" iPlatformTarget
"{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>