NuGet 錯誤 NU1105

案例 1

無法讀取 『ProjectFile』 的項目資訊。 項目檔可能無效或遺失還原所需的目標。

問題

項目檔存在,但未提供還原資訊。 請確定您使用 新的項目系統或舊版專案系統開啟專案

解決方法

命令列

從命令行中,這可能表示檔案已損毀或 NuGet.targets 未匯入。 若要匯 NuGet.targets入 ,通常建議匯入 Microsoft.Common.targets。 若要使用 .NET CLI 還原方案中的專案,請使用:

dotnet restore MySolution.sln

Visual Studio

在 Visual Studio 中,錯誤可能表示目標不會匯入類似命令行案例。

錯誤也可能表示專案已卸除。

  • 如果您使用 Visual Studio 2019 或更新版本,NuGet 就能夠針對卸除的項目重複使用先前還原中的成品。 為了讓此案例能夠運作,您必須確定解決方案中目前的所有專案在 Visual Studio 中載入之前,已從命令行還原。

  • 或者,重載專案。

案例 2

無效的目標 Framework 'net.6.0'

問題

項目檔存在,但指定無效的目標架構: 'net.6.0'。 這可能是因為錯字或使用不支援的格式所造成。

解決方法

更新項目檔以使用有效的目標架構。 在此情況下,請將 取代 'net.6.0''net6.0' (不含額外的點)。 如需支持架構及其正確格式的完整清單,請參閱 .NET 目標 Framework 檔。

案例 3

找不到「ProjectFile」的專案資訊。 如果你用的是 Visual Studio,可能是因為專案已經卸載或不屬於目前解決方案,所以請從命令列執行還原。 否則,專案檔案可能無效或缺少還原所需的目標。

問題

專案會參考另一個專案(例如透過 ), <ProjectReference>而該專案目前解決方案中未包含。 NuGet 找不到該專案的還原資訊,因為它並未作為解決方案的一部分載入。

解決方法

命令列

從命令列執行還原,直接針對解決方案檔案或專案檔案:

dotnet restore MySolution.sln

即使不是所有專案都載入,從命令列執行還原也能運作,因為它會直接讀取專案檔案,而不是依賴解決方案載入狀態。

Visual Studio

  • 把缺失的專案加入目前的解決方案,然後重新載入解決方案或重新執行還原。
  • 如果你有意將專案排除在解決方案中,建議先執行一次命令列還原,再依賴 Visual Studio 內建的還原功能。 Visual Studio 接著可以將還原的產物重用到被排除的專案。