可執行檔專案參考不相符的可執行檔時會產生錯誤
一般而言,可執行檔專案會參考程式庫專案,而不是其他可執行檔專案。 可執行檔專案也可以參考另一個可執行檔專案,以使用其中定義的 API。 有些開發人員想要從另一個可執行檔專案參考某個可執行檔專案,讓這兩個應用程式都放在同一個輸出資料夾中,並且可以從中執行。 不過,如果獨立式可執行檔參考非獨立式可執行檔 (反之亦然),此案例將無法運作。 由於應用程式主機的運作方式,兩個應用程式都會無法啟動。 為了避免應用程式無法執行的情況,.NET SDK 5+ 在偵測到不相符的可執行檔參考時,會產生編譯時期錯誤 NETSDK1150 和 NETSDK1151。
變更描述
在舊版的 .NET SDK 中,您可以從非獨立式可執行檔專案參考獨立式可執行檔專案,而不會發生建置錯誤。 不過,這兩個應用程式都將無法執行。 從 .NET SDK 5 開始,如果可執行檔專案參考另一個可執行專案且 SelfContained
值不相符,就會產生錯誤。
導入的版本
.NET SDK 5.0.300
變更原因
已引入錯誤以防止預期能同時啟動兩個應用程式但是卻無法的情況。
建議的動作
如果參考的專案不需要從輸出資料夾執行,您可以設定屬性以避免此錯誤檢查:
<ValidateExecutableReferencesMatchSelfContained>false</ValidateExecutableReferencesMatchSelfContained>
如需詳細資訊,請參閱 ValidateExecutableReferencesMatchSelfContained。
受影響的 API
無。