繁体   English   中英

nuget 无法识别已安装的包

[英]nuget doesn't recognize installed packages

我在 Git 上有一个使用 NuGet 库的 C# 项目。 一切正常,但当我打开一台新机器并在 Visual Studio 中打开解决方案时,由于引用损坏,它无法编译。 如果我单击项目下的引用,我可以看到带有黄色感叹号的经典警告标志。

Nuget restore 不会做任何事情(而且我仍然没有发现这个功能的任何用途......),文件 repositories.config 很好。 如果我右键单击解决方案,然后“管理解决方案的 NuGet 包”,则不会显示已安装的包。

直到今天,我都是这样解决的:运行

Install-Package package_name

它说:

'package_name' already installed.
My_project already has a reference to 'package_name'.

...然后它会显示管理器上的包,这些包已经分配给了正确的项目。


任何地方的代码都没有改变,我可以看到,因为 Git 上没有差异。

我只需要在新机器上做一次,但这真的很烦人。 任何的想法?


NuGet 版本:2.8.60318.667


更新27/07

我在另一台装有 Windows 10 的 PC 上从头开始尝试该过程,一切正常...相同版本的 Visual Studio、NuGet 等...我感到困惑

这可能是因为your.csproj 中的.dll 路径不正确。 包还原将包下载到本地目录。 它不会更改程序集在.csproj 中的引用路径,这意味着该项目仍将尝试在本地目录中定位dll。 黄色标记表示项目无法找到程序集。

卸载项目,右键单击项目并选择“Edit.csproj”,并验证丢失的 dll 的路径。 例如 - 如果你有 NUnit,

<Reference Include="nunit.framework">
      <HintPath>..\packages\NUnit.3.6.1\lib\net45\nunit.framework.dll</HintPath>
</Reference>

验证 dll 是否存在于“\packages\NUnit.3.6.1\lib\net45”目录中。

从我的脑海中我可以想到软件包没有被下载的几个原因,理想情况下你必须分享更多的细节。

首先,install-package 命令将不起作用。 您的软件包已经安装 VS 只是无法下载它们,因此您收到该错误是有道理的。

  • 首先,这是一个像 System.MVC.Web 一样托管在 nuget.org 中的公共包吗? 因为如果这是在一台新机器上,使用私有 nuget 服务器,您需要在工具 > 选项 > Nuget 包管理器 > 包源中配置该源。 (有关详细信息,请参阅https://learn.microsoft.com/en-us/nuget/tools/package-manager-ui
  • 检查您是否已将文件夹添加到您的 git 存储库,但同时为其内容设置了排除项。 要检查当您进行干净结帐时,请查看文件夹是否存在但为空。 如果是这种情况,只需删除文件夹,git ignore 应该从现在开始完成它的工作,每个新克隆的人都会进行适当的检查。
  • 如果以上两个最有可能是不工作的原因。 尝试从包管理器控制台恢复包,并使用详细信息更新您的帖子。

您可以打开包管理器控制台并键入:

Update-Package -reinstall

要么

Update-Package -reinstall -Project YourProjectName

仅供参考,Microsoft 提供了全面的文档 - https://learn.microsoft.com/en-us/nuget/consume-packages/package-restore - 关于恢复 nuget 包的多种方法

尝试从下面的 nuget 缓存文件夹中删除你的包,以便 NUGET 被迫从源代码下载

C:\Users\<<你的用户名>>\.nuget\packages

我今天遇到了这个问题,升级到最新版本的 VS 2017 (15.8.7) 根本没有帮助。

检查您的 packages.config 文件以查看您的 packages 标签是否如下所示:

<packages xmlns="urn:packages">

如果是这样,请删除 xmlns 属性,这样它就是:

<packages>

那为我修好了!

我已经解决了这个问题。 按照这个步骤

  1. 在 Visual Studio 中,单击“工具”>“扩展和更新”。
  2. 导航到Online ,搜索“ NuGet Package Manager for Visual Studio ”并单击Update
  3. (如果没有按钮Update ,导航到Updates > Visual Studio Gallery ,找到“NuGet Package Manager for Visual Studio”并单击Update 。)
  4. 然后重新启动 Visual Studio。

即使在解决方案级别安装它之后,根据您的默认设置,您可能必须选择您希望它在哪些项目中可用。那是我的问题。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM