恢复NuGet包

时间:2014-08-01 12:28:39

标签: nuget

我有一个包含多个项目的C#解决方案。一些项目引用了nuget包。整个解决方案(但没有下载的dll)由git存储库跟踪。

将其克隆到其他地方并尝试构建nuget询问是否应该下载丢失的包。下载后仍有几个参考库缺失。

我可以按照以下步骤逐一解决:

  1. 删除参考
  2. 删除packages.config文件中的包
  3. nuget
  4. 再次安装此软件包

    有没有更好的方法呢?我尝试重新安装所有nuget包,但我的Visual Studion崩溃了。重新启动并重试后,我发现了更多丢失的软件包。

    另一种方法是运行:

    1. PM>卸载程序包{名称}
    2. PM>安装包{名称}
    3. 每个丢失的包裹。缺少包装是指所有带黄色标记的包装。我无法在没有卸载命令的情况下安装它,因为nuget说它已被引用。

2 个答案:

答案 0 :(得分:0)

如果您尝试从命令行运行以下命令,是否还原所有软件包?

nuget.exe restore YourSolution.sln

如果没有,那么听起来你的项目的packages.config文件中缺少一些软件包。

您可以尝试使用PowerShell控制台中的重新安装参数更新软件包。

Update-Package –reinstall <packageName>

如果您想使用-ProjectName参数,也可以将此限制为一个项目。

答案 1 :(得分:0)

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

卸载项目,右键单击项目并选择&#34;编辑.csproj&#34;,并验证缺少dll的路径。 例如 - 如果您有NUnit,

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

验证dll是否存在于&#34; \ packages \ NUnit.3.6.1 \ lib \ net45&#34; 。目录