如果未指定 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