【问题标题】:Visual Studio 2015 can't find nuget package references and DLLs in packages folderVisual Studio 2015 在包文件夹中找不到 nuget 包引用和 DLL
【发布时间】:2017-11-11 02:39:43
【问题描述】:

别人给了我一个 C# 项目。我打开项目并尝试通过 Update-Package -reinstall 安装所有 Nuget 包。

它下载了packages文件夹中的所有包。

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

但整个项目仍然说它缺少所有参考。我编辑了 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 文件夹。所以路径似乎是对的。

为什么我的项目仍然无法加载引用?

【问题讨论】:

  • 您是否在包管理器控制台窗口或输出窗口中收到任何错误消息?在更新软件包之前,请清理并重建整个解决方案。请检查是安装了新版本还是真的删除了旧版本:stackoverflow.com/questions/20800507/…
  • 你能分享整个错误日志吗?

标签: visual-studio visual-studio-2015 nuget


【解决方案1】:

这篇文章开始变老了,但由于我自己遇到了这个问题并修复了它,我将分享一个可能的解决方案。

我必须手动卸载并重新安装包,方法是右键单击有问题的项目,管理 NuGet 包...,然后从那里卸载/重新安装。

注意包版本:确保获取相同版本,以防项目未使用最新版本。

在此过程之后对我来说一个明显的影响是 csproj 文件中的路径得到了更新。

希望它会帮助某人:)

【讨论】:

    【解决方案2】:

    在纯文本编辑器中打开项目的 csproj 文件并修复 DLL 的路径。您可能会看到如下内容:

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

    我将这些事件更改为:

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

    我从项目运行良好的计算机上推送了这个更改,然后将它们拉回到坏机器上,这不再是问题。

    注意:如果您的项目文件与您的包文件夹位于同一文件夹中,这将不是问题。

    【讨论】:

    • 遇到这个问题,.csproj 文件中没有 DLL 路径
    【解决方案3】:

    NuGet 是否成功从命令行还原包?

    尝试从命令行运行它,从与您的解决方案相同的文件夹中:

    nuget restore WebApiTest.sln
    

    注意,您可能需要完全限定 nuget 的执行(例如 C:\nuget\nuget.exe),或者将其放在您的路径中。

    如果您还没有下载 NuGet 可执行文件,您可能需要下载。

    如果这不起作用,希望它能说明原因!

    【讨论】:

    • 不幸的是给了我同样的问题
    【解决方案4】:

    为我修复缺少的项目引用的方法很简单:

    1. 关闭 Visual Studio
    2. 删除存储所有 nuget 包的“packages”文件夹(可能在您的解决方案级别或项目级别目录)
    3. 在 Visual Studio 中再次打开解决方案
    4. 如果您有 automatic package restore on,则只需重新构建,否则首先恢复 nuget 包(从解决方案上下文菜单中),然后重新构建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      相关资源
      最近更新 更多