【发布时间】:2021-10-19 20:38:52
【问题描述】:
我对 .NET 5 中 RuntimeIdentifier 和 PlatformTarget 之间的关系感到困惑。 我的 .NET 5 C# 项目运行和发布正常,但 PlatformTarget 是“AnyCPU”,RuntimeIdentifier 是“win-x64”。
从微软的文档中,RuntimeIdentifier 是“用于识别应用程序运行的目标平台”。 https://docs.microsoft.com/en-us/dotnet/core/rid-catalog 这不是“PlatformTarget”应该做的吗?
我尝试使用我以前见过的 RuntimeIdentifers(复数)(可能是 .NET Core 3?),但该项目无法编译:
<RuntimeIdentifiers>win-x64;win-x86</RuntimeIdentifiers>
来自我当前的项目文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0-windows</TargetFramework>
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x64</RuntimeIdentifier> -> RuntimeIdentifier is required since SelfContained is 'true'
...
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
...
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
...
</Project>
【问题讨论】:
-
很遗憾没有 - 这个问题甚至没有提到 PlatformTarget。