无法摆脱NuGet官方的包源

时间:2011-11-02 12:12:14

标签: visual-studio nuget

我进入包管理器 - > Package Sources选项并删除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

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

从哪里获取此设置以及为什么要继续插入?

在BenPhegan上针对CodePlex上的同一问题复制的更新

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

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

1 个答案:

答案 0 :(得分:2)

如果列表中没有其他内容,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;
        }

    }

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

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

我认为这种行为确实因版本而异。你用的是哪个版本?