共用方式為


僅限發行的自動 RuntimeIdentifier

在 7.0.100 SDK 中,需要執行階段識別碼 (RID) 的屬性自動新增 <RuntimeIdentifier> 至專案時,會有變更。 那些屬性如下所示:

  • SelfContained
  • PublishAot
  • PublishReadyToRun
  • PublishSingleFile
  • PublishSelfContained

不過,除了 SelfContained 以外的所有屬性都僅用於發佈。 不過,如果這些屬性位於專案檔中或指定為 dotnet 命令的一部分,則為任何 dotnet 作業新增隱含的 <RuntimeIdentifier>

現在,只會在發佈期間新增這些屬性的自動 RID,不包括 SelfContained。 此外,只有在使用 dotnet publish CLI 命令時,才會新增自動 RID。 您從 Visual Studio 或 msbuild 發佈時,不會新增 RID,因為那些 RID 是個別的機制,而且 Visual Studio 應該提供本身的 RID。

導入的版本

.NET 7.0.200 SDK

先前的行為

先前,如果您指定任何提及的屬性,RID 會自動新增至專案。

新的行為

RID 只會針對 dotnet publish 命令自動新增。

如果您在 .NET 7 中執行了不含 RID 的還原,並將此用來還原具有其中一個提及屬性的專案 publish --no-restore 命令,則必須使用 dotnet restore -r <RID> 來指定 RID。

中斷性變更的類型

此變更可能會影響二進位相容性來源相容性

變更原因

RID 變更是中斷性變更,而且不需要發佈屬性變更來中斷 dotnet build 和其他非發佈相關的命令。

針對類似 publish --no-restore 緊接著的 restore 之類的動作,您必須使用 dotnet restore -r RID 新增 RID。 在此情況下,您發行時,最好是明確,以便發行有相同的 RID (使用 dotnet publish -r RID)。 或者,您可以從發佈命令中移除 --no-restore

若為其他所有專案,則不需要採取任何動作。 不過,如果您想要保留 RID,請將此新增至專案檔,如下所示:<RuntimeIdentifier>win-x64</RuntimeIdentifier>

另請參閱