仅用于发布的自动 RuntimeIdentifier
在 7.0.100 SDK 中,有一个更改是自动将 <RuntimeIdentifier>
添加到具有需要运行时标识符 (RID) 的属性的项目。 这些属性如下所示:
SelfContained
PublishAot
PublishReadyToRun
PublishSingleFile
PublishSelfContained
但是,除 SelfContained
之外的所有这些属性仅用于发布。 然而,如果这些属性在项目文件中或者被指定为 dotnet
命令的一部分,则为任何 dotnet
操作添加了隐式 <RuntimeIdentifier>
。
现在,这些属性的自动 RID(不包括 SelfContained
)仅在发布期间添加。 此外,只有在使用 dotnet publish
CLI 命令时才添加自动 RID。 当从 Visual Studio 或 msbuild
发布时,不会添加它,因为它们是独立的机制,并且 Visual Studio 应该提供自己的 RID。
引入的版本
.NET 7.0.200 SDK
旧行为
以前,如果指定了上述任何属性,RID 将自动添加到项目中。
新行为
仅为 dotnet publish
命令自动添加 RID。
如果在 .NET 7 中执行了没有 RID 的还原,并使用它来还原具有上述属性之一的项目上的 publish --no-restore
命令,则需要使用 dotnet restore -r <RID>
指定 RID。
中断性变更的类型
更改原因
RID 更改是一项中断性变更,不需要更改发布属性来破坏 dotnet build
和其他与发布无关的命令。
建议的操作
对于 restore
后跟 publish --no-restore
之类的操作,必须使用 dotnet restore -r RID
添加 RID。 在这种情况下,最好在发布时进行显式操作,以便发布具有相同的 RID(使用 dotnet publish -r RID
)。 此外,也可以从 publish 命令中删除 --no-restore
。
对于其他所有内容,无需执行任何操作。 但是,如果你想要保留 RID,请将其添加到项目文件中,如下所示:<RuntimeIdentifier>win-x64</RuntimeIdentifier>
。
请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈