2016-08-02 83 views
3

我已被其他人授予了C#項目。我打開了該項目並試圖通過執行Update-Package -reinstall來安裝所有的Nu​​get軟件包。Visual Studio 2015無法在軟件包文件夾中找到nuget軟件包引用和DLL

它下載了packages文件夾中的所有包。

/Projects 
    /WebApiTest (root folder) 
    WebApiTest.csproj 
    WebApiTest.sln 
    /packages (packages are loaded in this folder) 

但整個項目仍然說,它缺少所有的參考。我editted的的csproj文件,看看它會嘗試加載從包,那就是:

<ItemGroup> 
    <Reference Include="Antlr3.Runtime"> 
     <HintPath>packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll</HintPath> 
    </Reference> 
    <Reference Include="EntityFramework"> 
     <HintPath>packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath> 
     <Private>True</Private> 
    </Reference> 
    <Reference Include="EntityFramework.SqlServer"> 
     <HintPath>packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll</HintPath> 
     <Private>True</Private> 
    </Reference> 
    ... etc. 

所以我認爲它開始在同一個目錄中查找作爲csproj文件在同一目錄也是具有所有DLL文件的packages文件夾。所以這條道路似乎是對的。

爲什麼我的項目仍然無法加載參考?

+0

您是否在包管理器控制檯窗口或輸出窗口中看到任何錯誤消息?在更新軟件包之前,請清理並重建整個解決方案。請檢查,如果新版本已安裝或舊版本被刪除:http://stackoverflow.com/questions/20800507/nuget-package-update-issues –

+0

你可以分享整個錯誤日誌? –

回答

0

NuGet是否成功從命令行恢復軟件包?

嘗試從在命令行中運行這個,從同一文件夾中您的解決方案:

nuget restore WebApiTest.sln 

注意,你可能需要完全限定的NuGet的執行(例如C:\的NuGet \ nuget.exe) ,或者將它放在你的道路上。

如果您還沒有,可能需要下載NuGet可執行文件。

如果這不起作用,希望它會闡明爲什麼!

+0

不幸的是,我也遇到了同樣的問題 – w00

1

這篇文章開始變老了,但正如我自己遇到過這個問題並修復它,我會分享一個可能的解決方案。

我必須通過右鍵單擊有問題的項目,管理NuGet包...,然後從那裏卸載/重新安裝,手動卸載並重新安裝包。

小心包裝版本:一定要抓住相同的,以防項目不使用最新的。

這個過程之後對我來說一個明顯的影響是csproj文件中的路徑得到了更新。

希望它會幫助別人:)

0

開拓的csproj文件在純文本編輯器中的項目並修復DLL的路徑。您可能會看到類似:

<HintPath>packages\etc\etc\etc...</HintPath> 

我改變那些出現於:

<HintPath>..\packages\etc\etc\etc...</HintPath> 

我被推離,該項目罰款的工作電腦這一變化,並把他們背下來的壞機上它不再是一個問題。

注意:如果您的項目文件與您的軟件包文件夾位於相同的文件夾中,這不會成爲問題。

0

什麼固定的,我缺少的項目引用是簡單:

  1. 關閉Visual Studio的
  2. 刪除其中所有的Nu​​Get包存儲(可能是在您的解決方案級,否則「包」的文件夾項目級目錄)
  3. 打開在Visual Studio
  4. 如果你有automatic package restore on再次解決方案,只需重建,否則先恢復(從溶液中上下文菜單)中的NuGet包,然後重建。