阻止VisualStudio使用特定的NuGet包源

时间:2017-01-04 20:50:49

标签: visual-studio-2015 nuget nuget-package-restore

我的工作场所有一台NuGet服务器,我在家工作时在个人电脑上配置了该服务器。只有通过VPN连接到我的工作场所时才能访问。

当我处理个人项目时,我不想首先建立VPN连接,因为我不需要NuGet服务器。

然而,当我不这样做时,VisualStudio / NuGet包管理器将始终尝试联系它以搜索包或解决依赖关系,即使我显式从UI下拉菜单中选择包源。当我尝试安装选择了特定源的软件包时,这也会出现与超时相关的错误。

就目前而言,我要么必须通过VPN连接,要么取消选中他的包源 - 这是一个全局设置。难道没有办法告诉NuGet只使用特定的包源或打开/关闭源来获取特定的解决方案吗?

解决方案,针对我的具体用例:
在@jessehouwing将我指向NuGet文档之后,我最终将一个NuGet.Config文件放在顶级存储库文件夹中,其中存储了所有与工作相关的解决方案。

所有文件都添加packageSource,所有其他设置都来自全局设置文件(VisualStudio使用的文件位于%appdata%/NuGet),我从中删除了特定于工作的软件包源代码所以它不会让我在个人项目中烦恼。

如果有人需要它:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="Work" value="http://path/to/your/source" />
  </packageSources>
</configuration>

1 个答案:

答案 0 :(得分:1)

您可以在解决方案文件夹中粘贴nuget.config

  

项目特定的NuGet.Config文件位于从解决方案文件夹到驱动器根目录的任何文件夹中。这些允许控制设置,因为它们适用于项目或一组项目。

然后将正确的存储库位置放在那里。