从 .Net Core 3 迁移到 .Net 5 时请求 RuntimeIdentifier 时出现错误 NETSDK1097

Tho*_*mas 6 .net-core

我正在为 MacOS (osx-x64) 和 Windows (win-x64) 构建单个文件可执行文件。

我的命令行是:

dotnet 发布 --nologo -r osx-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true

当迁移到 .Net 5 时,我现在收到此错误:

/usr/local/share/dotnet/sdk/5.0.100-preview.7.20366.6/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets(142,5):错误NETSDK1097:不是支持将应用程序发布到单个文件而不指定运行时标识符。您必须指定 RuntimeIdentifier 或将 PublishSingleFile 设置为 false。

所以我决定添加 RuntimeIdentifier 部分:

<RuntimeIdentifiers>osx-x64;win-x64</RuntimeIdentifiers>
Run Code Online (Sandbox Code Playgroud)

事实证明,这需要在每个子项目中......有点烦人,但没关系。

但现在,它不起作用:

发布到单个文件的应用程序需要使用应用程序主机。您必须将 PublishSingleFile 设置为 false 或将 UseAppHost 设置为 true。

另外,如果我在命令行上添加所有内容:

dotnet 发布 --nologo -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true /p:UseAppHost=true /p:RuntimeIdentifier=osx-x64 -r osx-x64

我犯了同样的错误。看起来 dotnet 命令行上的配置被忽略了。

将运行时标识符添加到所有项目文件中,会产生:

错误 MSB6006:“dotnet”退出,代码为 1。

这并没有说明什么。

我的问题是:

.NET 5 的行为是否发生了变化(我找不到有关该主题的任何内容),或者预览是否已损坏?