針對目標 .NET Framework 錯誤進行疑難解答
適用於: Visualstudio
本主題描述可能因為參考問題而發生的 MSBuild 錯誤,以及如何解決這些錯誤。
參考以不同 .NET 版本為目標的專案或元件
您可以建立應用程式來參考以不同 .NET 版本為目標的項目或元件。 例如,您可以建立以 .NET 6 為目標的應用程式,但參考以 .NET Core 3.1 為目標的元件。 不過,您無法在以舊版 .NET 為目標的專案中,將參考設定為以 .NET 6 為目標的專案或元件。 以下是您可能會在此案例中看到的錯誤範例:
error NU1201: Project ClassLibrary-NET6 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Project ClassLibrary-NET6 supports: net6.0 (.NETCoreApp,Version=v6.0)
2>Done building project "ClassLibrary-NET31.csproj" -- FAILED.
若要解決此錯誤,請確定您的應用程式是以與應用程式所參考之專案或元件的目標版本相容的 .NET 版本為目標。
將項目的目標重新設為不同版本的 .NET
如果您變更應用程序的目標 .NET 版本,Visual Studio 會變更一些參考,但您可能必須手動更新一些參考。 例如,如果您將應用程式變更為以 .NET Core 3.1 為目標,且該應用程式具有依賴 .NET 6 的參考、資源或設定,可能會發生上述其中一個錯誤。
更新 app.config 中的參考
若要解決 .NET Framework 應用程式中的應用程式設定,請遵循下列步驟:
- 開啟 方案總管。
- 選 取 [顯示所有檔案],然後在 Visual Studio 的 XML 編輯器中編輯 app.config 檔案。
- 變更設定中的版本,以符合適當的 .NET 版本。 例如,您可以將版本設定從 4.0.0.0 變更為 2.0.0.0。
同樣地,對於已新增資源的應用程式,請遵循下列步驟:
- 開啟 方案總管。
- 選 取 [顯示所有檔案]。
- 展開 [我的專案 ] (Visual Basic) 或 [ 屬性 ] (C#) ,然後在 Visual Studio 的 XML 編輯器中編輯 Resources.resx 檔案。
- 將版本設定從 4.0.0.0 變更為 2.0.0.0。
更新資源
如果您的應用程式具有圖示、位圖或數據連接字串等設定等資源,您也可以藉由移除專案 Designer 的 [設定] 頁面上的所有專案,然後讀取必要的設定來解決錯誤。
您將專案重新設為不同版本的 .NET,且不會解析參考
如果您將專案重新設為不同版本的 .NET,在某些情況下您的參考可能無法正確解析。 元件的明確完整參考通常會造成此問題,但您可以移除未解析的參考,然後將它們新增至專案來解決此問題。 或者,您可以編輯項目檔來取代參考。 首先,移除下列表單的參考:
<Reference Include="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
然後,以簡單形式取代它們:
<Reference Include="System.ServiceModel" />
注意事項
關閉並重新開啟項目之後,您也應該重建專案,以確保所有參考都正確解析。