【问题标题】:Unable to find nuget local source error occurred while restoring nuget packages the local source doesn't exist还原本地源不存在的 nuget 包时发生无法找到 nuget 本地源错误
【发布时间】:2018-03-23 09:35:17
【问题描述】:

我获得了 Visual Studio 2017 解决方案。当我打开它失败并出现错误:

Error occurred while restoring NuGet packages: The local source '\\network-location\' doesn't exist.

我可以手动获取这些包的副本,但我不知道这个原始路径配置在哪里以及如何将其更改为新位置。

关于我应该在哪里看,有什么建议吗?

【问题讨论】:

    标签: visual-studio-2017 nuget


    【解决方案1】:

    可以在 NuGet Package Manager -> Package Sources 下的 Visual Studio 选项 (Tools -> Options) 中找到包源,或者直接单击 NuGet 对话框中的相应图标(解决方案/项目的上下文菜单 -> Manage NuGet Packages...):

    您的本地包源应在以下对话框中列出:

    但是,包源可能是特定于解决方案或项目的,因此可以在解决方案目录中的NuGet.config 文件中指定。根据NuGet.config reference,从 NuGet 3.4 开始,Visual Studio 会在项目目录或“或驱动器根目录之前的任何文件夹”中查找。直到 NuGet 3.3,还有名称为 .nuget 的子目录在其中搜索 NuGet.config 文件。

    必须更改包含本地包源的文件才能恢复正确的包。

    【讨论】:

    • 非常感谢!它帮助到我。我刚刚进行了文件夹清理并删除了旧项目,其中存在旧 Nuget 源的源路径。删除未使用的 nuget 源后,错误消失了。
    【解决方案2】:

    上面提出的解决方案都没有为我做这件事。而且,老实说,我真的不喜欢微软一段时间以来所做的事情:每次安装更新时都会有另一个惊喜。 :-(

    分析

    Error occurred while restoring NuGet packages: The local source 'C:\Microsoft\Xamarin\NuGet' doesn't exist.
    

    显然,NuGet 正在尝试从 C:\\Microsoft\\Xamarin\\NuGet 恢复与 Xamarin 无关的解决方案。该解决方案之前编译过多次,甚至从 GIT 中取回也没有改变任何东西。所以,问题不是我的解决方案。这是更全球化的东西。

    顺便说一句:我不想使用这个文件夹,因为我不使用 Xamarin!

    我在解决方案的任何obj 文件夹中的*.csproj.nuget.dgspec.json 文件中找到了以下参考。所有这些 json 文件都指向这个 Xamarin 文件夹:

    "fallbackFolders": {
      "C:\\Microsoft\\Xamarin\\NuGet": {},  
      "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
      "https://api.nuget.org/v3/index.json": {}
    },
    

    问题:VS 是如何知道fallbackFolders 的?

    如上所述,我在我的任何 Visual Studio / NuGet 配置设置中都没有找到任何提示。我删除了所有objfolder,但每次尝试编译或恢复我的包时,引用都回来了。

    对我来说解决方案是:

    • 删除解决方案中的所有obj文件夹(如上所述)

    • 删除c:\Program Files (x86)\NuGet\Config\Xamarin.Offline.config

    你会发现以下内容:

    <fallbackPackageFolders>
        <add key="Xamarin Offline Packages" value="C:\Microsoft\Xamarin\NuGet\"/>
    </fallbackPackageFolders>
    

    这个文件是一周前在我的机器上引入的,我认为它是最新的 VS 更新(16.2)。从今天开始,我并没有离开最新的更新 (16.2.1)。

    【讨论】:

    • 我只有在扫描了我所有的磁盘搜索“c:\microsoft”后才找到你的答案... :-) 所有这些 nuget 的东西每天都变得越来越疯狂。我从不允许任何东西创建“c:\microsoft”目录!
    • 我在未使用 Service Fabric 的项目中引用了 Service Fabric 时遇到了完全相同的问题。导航到“c:\Program Files (x86)\NuGet\Config\”并删除服务结构文件为我解决了这个问题。
    • 好发现!仅供参考,我不需要删除 obj 文件夹。我刚刚重命名了Xamarin.Offline.config,附加了一个.txt 扩展名(以防我需要恢复它),然后重新加载了我的解决方案; .csproj.nuget.dgspec.json 在没有 C:\Microsoft 文件夹的情况下重新生成。耶!
    【解决方案3】:

    你会在 Visual Studio 2019 中遇到同样的问题。我也有同样的问题,我以为是 Visual Studio 2017 上的冲突,但事实并非如此。

    解决方法是您必须删除导致问题的来源。

    您可以通过Tools 删除它 -> NuGet Package Manager -> Package Manager Settings

    【讨论】:

    • 具体来说,就我而言,NuGet 正在从项目本身中寻找包,找不到它们(正确,没有),但不会尝试默认的 NuGet 服务器。解决方法是取消选中本地项目作为包源。然后 NuGet 愉快地从 nuget.org 检索了包。
    【解决方案4】:

    在我的情况下,我收到了这个错误: 还原 NuGet 包时出错:本地源“C:\Microsoft\Xamarin\NuGet”不存在。

    我不小心删除了“C:\Microsoft\Xamarin\”文件夹。 在此之后 VS2019 无法恢复软件包。 我刚刚手动创建了“C:\Microsoft\Xamarin\NuGet”文件夹。 重新启动VS,清理解决方案,之后一切顺利。

    【讨论】:

    • 我已删除该文件夹以腾出空间。它最终破坏了 ASP.NET Core 构建。重新创建 C:\Microsoft\Xamarin\NuGet 就可以了,不需要重新启动。
    • 这也对我有用。创建文件夹 C:\Microsoft\Xamarin\NuGet Restarted Visual Studio
    【解决方案5】:

    所有答案都是相关的,但它们并不完整,浪费了 30 分钟。

    以下工作正常:

    1 .清除缓存并删除问题文件夹:

    Tools > NuGet Package Manager > Package Manager Settings
          > NuGet Package Manager > General > Clear All NuGet Cache(s)
    
    Tools > NuGet Package Manager > Package Manager Settings
          > NuGet Package Manager > Package Sources
                       > Available package sources
                       >   {uncheck the folder that is giving error}
                       >   OK
    

    2 。在 VS 解决方案上还原 NuGet 包

    Right-click  on  Visual studio solution (not project)
          > Restore NuGet Packages
    

    3 .构建和运行项目

    希望对您有所帮助。

    【讨论】:

      【解决方案6】:

      我在不同的情况下遇到了这个错误。我在我的解决方案文件夹中检查了Nuget.config 的内容,在&lt;packageSources&gt; 节点下它有一个指向./nuget 的条目。解决方案目录中不存在此文件夹,因此我只是创建了一个具有此名称的空文件夹,并且解决方案编译没有任何问题。

      【讨论】:

        【解决方案7】:

        在我的情况下,解决它的唯一方法是清理所有 NuGet 缓存。 您可以在工具 -> NuGet 包管理器 -> 常规中找到它

        Clear All NuGet Cache(s) print

        【讨论】:

          【解决方案8】:

          但我不知道这个原始路径的配置位置以及如何将其更改为新位置。

          要解决此错误,请在给定的解决方案中搜索文件NuGet.config,然后用记事本编辑它,您将在该文件中找到以下设置:

            <packageSources>
              <add key="LocalServerName" value="\\network-location\" />
            </packageSources>
          

          您可以将值更改为新位置。

          【讨论】:

            【解决方案9】:

            同样的情况:

            Error occurred while restoring NuGet packages: The local source 'C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages' doesn't exist.
            

            我的解决方案是重新创建文件夹。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2019-10-26
              • 1970-01-01
              • 2013-06-13
              • 2016-03-13
              • 1970-01-01
              • 2019-06-25
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多