【问题标题】:Can't get rid of NuGet official package source摆脱不了NuGet官方包源
【发布时间】:2011-11-02 12:12:13
【问题描述】:

我进入包管理器 -> 包源选项并删除 NuGet 官方包源,以便只有我的本地源可用。然后我关闭了 Visual Studio 2010。当我重新打开 Visual Studio 时,NuGet 官方包源仍然在可用包源的顶部。 https://go.microsoft.com/fwlink/?LinkID=206669

我曾尝试导出和导入设置,删除相关的suo文件无济于事。即使我不打开解决方案也会发生这种情况。

我发现的一件事是,当我第二次打开VS时,下面的配置文件是正确的。 C:\Documents and Settings{myusername}\Application Data\NuGet\NuGet.Config

只要我在工具 -> 选项下打开包管理器,官方源就会被添加到 NuGet.Config 中,

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="Local Package Source" 
        value="http://nuget:8081/DataServices/Packages.svc/" />
  </packageSources>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
</configuration

改为...

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <!-- new line below -->
    <add key="NuGet official package source" 
        value="https://go.microsoft.com/fwlink/?LinkID=206669" />
    <add key="Local Package Source" 
        value="http://nuget:8081/DataServices/Packages.svc/" />
  </packageSources>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
</configuration

当我在选项树视图中单击包管理器时,打开选项对话框时不会更改此文件。

它是从哪里得到这个设置的,为什么一直插入它?

从 Ben Phegan 复制的关于 CodePlex 上同一问题的更新

http://nuget.codeplex.com/workitem/1696

“我认为这可能是 AddOfficialPackageSourceIfNeeded() 的实现问题”... http://nuget.codeplex.com/SourceControl/changeset/view/2b36b2e1935a#src%2fVisualStudio%2fPackageSource%2fVSPackageSourceProvider.cs

【问题讨论】:

    标签: visual-studio nuget


    【解决方案1】:

    如果列表中没有其他代码,NuGet vsix 本身中有一些代码会添加默认反馈,但其中似乎存在错误:

        if (officialFeed == null)
        {
            // There is no official feed currently registered
    
            // Don't register our feed unless the list is empty (other than the aggregate). This is the first-run scenario.
            // It also applies if user deletes all their feeds, in which case bringing back the official feed makes sense.
            if (_packageSources.Count > 1)
            {
                return;
            }
    
        }
    

    然后这会失败并添加官方提要作为第一个来源。我会添加另一个源,以便您拥有 >1 个源(本地目录应该可以工作)。这应该可以防止这种行为。

    Nuget.exe 命令具有类似的行为,但是默认情况下会添加它,而不管可用的源是什么。

    我相信这种行为确实因版本而异。你用的是什么版本?

    【讨论】:

    • 谢谢本。我会检查一下。我正在使用版本 1.5.20902.9026
    • Ben,vsix 包中的代码在哪里?您是否反映/窥视了其中一个 dll?
    • 你可以在nuget.codeplex.com找到代码——所以我真的没有做任何特别的事情! :)
    • 谢谢本。我冒昧地将您 CodePlex 答案中的额外信息复制到我的问题的更新中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 2016-07-25
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 2011-08-07
    • 2013-07-28
    相关资源
    最近更新 更多