2016-08-02 80 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包,然后重建。