Visual Studio项目中的NuGet.Config文件在哪里?


79

我想知道Visual Studio 2017项目中的NuGet.Config文件在哪里?我试图在项目的根目录中创建自己的NuGet.Config文件,但没有找到任何新的存储库(NuGet源)。有人有什么主意吗?

这是我要为.Net Core项目获取的文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="AspNetCore" value="https://dotnet.myget.org/F/aspnetcore-ci-dev/api/v3/index.json" />
    <add key="AspNetCoreTools" value="https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json" />
    <add key="NuGet" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration>

Answers:


110

Visual Studio从解决方案根目录读取NuGet.Config文件。尝试将其移动到那里,而不是将其放置在与项目相同的文件夹中。

您也可以将文件放在%appdata%\NuGet\NuGet.Config,它将在任何地方使用。

https://docs.microsoft.com/zh-cn/nuget/schema/nuget-config-file


4
你尝试过VS 2017吗?我已经尝试过了,但没有成功。我实际上如何注意到这些变化?也许它们在那里,但我没有注意到(但我不这么认为)。
Mohammed Noureldin

4
每个项目的NuGet.Config文件可通过命令行还原工作,但不能在Visual Studio中使用。
贾斯汀·埃姆加滕

7
@Justin Emgarten,是否有任何文档说明“每个项目的NuGet.Config文件可从命令行还原工作,但不能在Visual Studio中工作”的思想,以及为什么NuGet.config中的repositoryPath设置不能仅针对每个解决方案针对每个项目工作?谢谢。
Leo Liu-MSFT,

4
这不适用于VS2017。VS在解决方案根文件夹中看不到NuGet.config。
霹雳霹雳

8
默认情况下,VS2017使用位于路径C:\ Users \ yourusername \ AppData \ Roaming \ NuGet \ Nuget.config的全局Nuget.config
乘客

29

有多个按以下顺序读取的nuget程序包:

  1. 首先NuGetDefaults.Config file。您将在中找到它%ProgramFiles(x86)%\NuGet\Config
  2. 计算机级别的文件。
  3. 用户级文件。您将在中找到它%APPDATA%\NuGet\nuget.config
  4. nuget.config从驱动器的根目录一直到调用nuget.exe的目录的任何名称的文件。
  5. 调用nuget.exe时在-configfile选项中指定的配置文件

您可以在此处找到更多信息。


3
由于一开始让我感到困惑,所以我想澄清一下:此处列出的顺序是nuget加载其设置的顺序。后续步骤可能会覆盖以前的设置。因此,当您指定--configfileist时,仍会读取默认文件,计算机级别的文件等。但是,NuGet会自下而上地考虑这些选项,即--configfilewins与用户级别的文件等
。– Manuzor

3

除了接受的答案外,我还要添加一个信息,即Visual Studio 2017中的NuGet包位于项目文件本身中。即,右键单击项目->编辑,以找到所有包引用条目。


3
我认为您误解了这个问题。问题是关于您将nuget.config文件放置在哪里(该文件列出了包含要下载的可用nuget的所有服务器)。它不会问哪个文件列出了您的项目已安装的nuget。
Pure.Krome

5
@ Pure.Krome同意,但是男人发布了这个答案,您认为他误解了这个问题,这很令人兴奋,实际上是男人问了这个问题!; D
S.Serpooshan

4
/ me躲起来,尴尬。
Pure.Krome

2

如果使用代理,则必须编辑Nuget.config文件。

在Windows 7和10中,此文件位于以下路径中:
C:\ Users \ YouUser \ AppData \ Roaming \ NuGet。

包括设置:

<config>
  <add key = "http_proxy" value = "http://Youproxy:8080" />
  <add key = "http_proxy.user" value = "YouProxyUser" />
</config>

0

我为此帖子创建了一个答案,该答案可能会有所帮助:https : //stackoverflow.com/a/63816822/2399164

概要:

我玩游戏有点晚了,但是我相信我找到了解决这个问题的简单方法...

  1. 在与.sln相同的目录中创建一个“ NuGet.Config”文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="{{CUSTOM NAME}}" value="{{CUSTOM SOURCE}}" />
  </packageSources>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
  <packageManagement>
    <add key="format" value="0" />
    <add key="disabled" value="False" />
  </packageManagement>
</configuration>
  1. 这就对了!在这里也创建您的“ Dockerfile”

  2. 使用Dockerfile运行docker build,所有问题都会解决

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.