如果未指定 self-contained,則 RuntimeIdentifier 會顯示警告

如果您在專案檔中指定 RuntimeIdentifier,或使用 -r 選項搭配 dotnet,則 .NET SDK 會將組建、發佈和執行輸出預設為獨立式應用程式。 未指定 RuntimeIdentifier 的預設值則是設為相依於 Framework 的應用程式。 如果您指定 RuntimeIdentifier,但未指定應用程式是否為 self-contained,這項變更會產生新的警告 (NETSDK1179)。

導入的版本

.NET 6 RC 1

先前的行為

在舊版中,指定 RuntimeIdentifier 會以無訊息方式將應用程式從相依於 Framework 的應用程式變更為 self-contained 應用程式。

新的行為

在 .NET 6 中,如果您在未指定應用程式是否為獨立式的情況下指定 RuntimeIdentifier,您將會收到下列警告:

警告 NETSDK1179:使用 '--runtime' 時,必須有一個 '--self-contained' 或 '--no-self-contained' 選項。

例如,下列命令會產生警告:

dotnet publish -r win-x86

變更類別

這項變更可能會影響「來源相容性

變更原因

未指定 RuntimeIdentifier 的預設值會產生相依於 Framework 的應用程式。 此預設值導致許多客戶混淆。 新增警告的目的是:

  • 警告客戶相依於 Framework 的應用程式預設值已發生行為變更。
  • 鼓勵客戶具體選擇其想要建置的應用程式類型。
  • 讓客戶做好準備,以因應 .NET 7 中的行為可能會變更成預設與架構相依。
  • 在專案檔中為 SelfContained 指定布林值。
  • 或者,透過值將 --self-contained 新增至您的組建或發佈命令。

受影響的 API

N/A

另請參閱