【问题标题】:How to re-install nuget package that's already in the solution's packages directory?如何重新安装已经在解决方案包目录中的 nuget 包?
【发布时间】:2012-11-17 13:47:48
【问题描述】:

背景/历史

  • 我有一个包含 MVC4 项目的解决方案。
  • 我下载了一个 nuget 包(特别是 dotLess 包)。这在我的解决方案目录中添加了一个包文件夹,其中包括 dotless(它仍然存在)。
  • 然后我删除了 MVC4 项目以重新开始,并添加了一个同名的新项目。

通常,我只会重新安装该软件包。但是,这似乎需要 Nuget 服务器和互联网连接。这很好,除了目前我的开发机器没有互联网。

问题

由于我可以在我的解决方案的“包”目录中看到包含包文件的文件夹,有什么方法可以将它添加到项目中而无需通过互联网往返?

【问题讨论】:

    标签: asp.net-mvc visual-studio asp.net-mvc-4 nuget packages


    【解决方案1】:

    另一种选择是设置本地 nuget 库以供您离线访问包

    http://www.codecapers.com/post/How-to-Set-Up-a-Local-NuGet-Gallery.aspx

    【讨论】:

    • 我喜欢这种方式来保存由于某种原因无法与世界共享的私有包。适用于内部开发等的基础包。结合本地缓存内容,即使他们在海滩上,您也可以让整个团队工作(我在开玩笑)。
    【解决方案2】:

    您是否从 Scott Hanselman 那里尝试过这个? http://www.hanselman.com/blog/HowToAccessNuGetWhenNuGetorgIsDownOrYoureOnAPlane.aspx

    简而言之,他建议由于 NuGet 将内容缓存在您的本地硬盘上,您应该告诉它指向那里。

    当代理阻止我连接到互联网时,我使用了它,它运行良好!

    【讨论】:

    • 这很有趣;但是,我目前拥有的只是 [SolutionName]\packages 目录。我可以将 nuget 指向此位置以将软件包重新安装到同一位置吗?它可以工作,只是似乎它可能不是最好的主意(尽管我不一定支持)。
    • 是的,我认为在你的情况下,你必须将 nuget 指向这个位置,它应该可以作为你的本地缓存正常工作,因为你在 C:\Users\<username>\AppData\Local\NuGet\Cache 没有任何东西
    【解决方案3】:

    如果我对您的理解正确并且您知道正确的版本号,那么您可以尝试将以下内容添加到 packages.config 并查看它是否被正确提取。

      <package id="dotless" version="1.3.1.0" />
    

    【讨论】:

    • 如果您只想要这个项目,我觉得这是一种快速的方法。您必须从包管理器控制台运行 update-package -reinstall 才能将包的资产重新添加到项目中。
    • 我认为结合这个答案和 Deepak 的评论将是最终的解决方案。明天我会看到我是否可以添加该行并从包管理器运行 update-package -reinstall 而无需互联网。
    • 我正在尝试它,并且必须从我的本地盒子中提供源代码,它应该寻找重新安装软件包。更新包-重新安装-source "C:\Users\\AppData\Local\NuGet\Cache"
    【解决方案4】:

    这可能不是一个理想的答案,但每当我与 Visual Studio 中的 Nuget 包断开连接时,我通常会转向 Nuget 控制台并从那里重新安装,之后所有连接都将恢复。在你的情况下是这样的:

    PM> Install-Package dotless

    无论如何,也许我误解了你的问题;) 问候!

    【讨论】:

    • 是的。因为正如我在帖子中提到的那样,此时我还没有连接到互联网。因此,运行此命令会导致与 nuget 的连接出现错误。
    猜你喜欢
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 2020-05-10
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    相关资源
    最近更新 更多