我进入包管理器 - > 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
答案 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命令具有类似的行为,但默认情况下会添加它,无论可用的源是什么。
我认为这种行为确实因版本而异。你用的是哪个版本?