僅限發行的自動 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>
。