簡體   English   中英

NuGet有包丟失的問題,如何恢復?

[英]NuGet has problems with missing packages, how to restore?

當我嘗試編譯我的程序時,出現以下錯誤:

This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=317567.    

現在,當我右鍵單擊解決方案並按

All packages are already installed and there is nothing to restore.

我嘗試手動重新安裝每個沒有解決問題的包,我嘗試重新安裝 NuGet 但這也沒有幫助,我什至嘗試重新安裝 Visual Studio。

我還嘗試從 tfs 文件夾中移動包文件夾以覆蓋我的包文件夾,但這並沒有解決任何問題。 我還嘗試在缺少此軟件包的情況下重新下載它們,這也沒有解決問題。

有人知道如何恢復nuget包嗎?

使用 Visual Studio 中的Package Manager Console運行此命令。

1.這將從解決方案中恢復所有包

nuget restore YourSolution.sln

2.如果要將軟件包重新安裝到與以前安裝的版本相同的版本

Update-Package -reinstall

老實說,無論誰為 VS 開發了 NuGet 命令,都需要回到繪圖板。 他們完全忽略了有時這些 DLL 和/或文件被損壞或刪除的事實。 “NuGet Get-Packages -Force”選項真的可以節省他們的培根。 我看到的唯一差距是 VS 和 Package 控制台不允許您從 NuGet 調用強制下載。 即使通過 VS 清除緩存也沒有用。

當我嘗試在解決方案根目錄中不存在包文件夾的計算機上構建我的項目時遇到了這個問題。

最初創建項目文件時,VS2019似乎在項目文件中添加了以下內容:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
</Target>

據我了解,這些設置現在已被棄用,不知道為什么 VS 首先插入它。

無論如何,在刪除這些行之后,VS 恢復了軟件包並再次正確構建了解決方案。

通過刪除以下目錄中的內容來清除 Nuget 緩存可能是個好主意: C:\\Users\\{your_username}\\AppData\\Local\\NuGet

嗯,這可能是一種糟糕的方式,但我發現如果我只是刪除該行,它就可以工作

http://go.microsoft.com/fwlink/?LinkID=317567。" HelpKeyword="BCLBUILD2001" />

從 project.csproj ,不確定這是否會在以后引起問題,但現在可以使用。

您只需要:打開包管理器控制台並運行以下命令: Update-Package -reinstall

PS :VS2017 及以上的 NuGet 包管理器包含在 Visual Studio 中,無需安裝任何其他東西。

NuGet 包的功能問題也可能是因為NuGet 包需要項目不滿足的某些依賴項

NuGet 包可以在Dependecies部分中聲明依賴,例如 .NETFramework,Version=v.4.6.2 而項目針對的是舊版本(目標框架:.NET Framework 4.6.1. )。

NuGet 系統沒有將這一事實通知用戶,而是該項目根本不編譯。

就我而言,我有不同的 Nuget 配置,不知何故項目文件中的 HintPath 不適合。

在此處輸入圖片說明

也許您應該檢查 HintPath 是否指向正確的 NuGetPackages 文件夾。

您還應該檢查文件頂部的以下條目: 在此處輸入圖片說明

在文件的底部: 在此處輸入圖片說明

所有這些路徑都應指向文件結構中正確的 NuGetPackage 文件夾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM