NuGet.Config 文件位于 Visual Studio 项目中的啥位置?
Posted
技术标签:
【中文标题】NuGet.Config 文件位于 Visual Studio 项目中的啥位置?【英文标题】:Where is NuGet.Config file located in Visual Studio project?NuGet.Config 文件位于 Visual Studio 项目中的什么位置? 【发布时间】:2017-08-01 20:15:54 【问题描述】:我想知道 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>
【问题讨论】:
【参考方案1】:Visual Studio 从解决方案根目录读取 NuGet.Config 文件。尝试将其移到那里,而不是将其放在与项目相同的文件夹中。
您也可以将文件放在%appdata%\NuGet\NuGet.Config
,它将在任何地方使用。
https://docs.microsoft.com/en-us/nuget/schema/nuget-config-file
【讨论】:
在 Visual Studio 2017 中打开解决方案,然后转到工具 > 选项 > NuGet 包管理器 > 包源。您应该会看到列出的来源。 默认情况下,VS2017 使用位于路径 C:\Users\yourusername\AppData\Roaming\NuGet\Nuget.config 的全局 Nuget.config 尽量不要将 nuget.config 文件与 .nuget 文件夹混淆。 如果 NuGet(v3.4.3 及更高版本)包含格式错误的 XML(标签不匹配、引号无效等),它会静默忽略整个配置文件。这就是为什么最好使用nuget config
ref 来管理设置。对我来说,它在 VS2017 的解决方案级别上工作。
如果您打算使用像 Microsoft AppCenter (appcenter.ms) 这样的 CI - 那么它期望 Nuget.config
位于解决方案根目录中。
我不确定为什么在我的工作笔记本电脑上进行设置时文件 NuGet.config
为空,但在我的个人笔记本电脑上配置正确。我真的很想知道这个文件是如何创建的以及在哪个过程下创建的?它是 MSBuild 工具安装的一部分还是 NuGet vscode 扩展安装的一部分?【参考方案2】:
有多个nuget包按以下顺序读取:
-
首先是
NuGetDefaults.Config file
。您可以在 %ProgramFiles(x86)%\NuGet\Config
中找到它。
计算机级文件。
用户级文件。您可以在 %APPDATA%\NuGet\nuget.config
中找到它。
任何名为 nuget.config
的文件,从驱动器的根目录到调用 nuget.exe 的目录。
调用 nuget.exe 时在 -configfile 选项中指定的配置文件
您可以找到更多信息here。
【讨论】:
因为一开始我很困惑,所以我想澄清一下:这里列出的顺序是 nuget 加载其设置的顺序。后面的步骤可能会覆盖以前的设置。因此,当您指定--configfile
时,ist 仍会读取默认文件、机器级文件等。但随后 NuGet 考虑这些选项自下而上,即 --configfile
胜过用户级文件等
我不确定为什么在我的工作笔记本电脑上进行设置时文件NuGet.config
为空,但在我的个人笔记本电脑上配置正确。我真的很想知道这个文件是如何创建的以及在哪个过程下创建的?它是 MSBuild 工具安装的一部分还是 NuGet vscode 扩展安装的一部分?【参考方案3】:
除了已接受的答案之外,我想添加一个信息,即 Visual Studio 2017 中的 NuGet 包位于项目文件本身中。即,右键单击项目 -> 编辑,找到所有包引用条目。
【讨论】:
我认为您误解了这个问题。问题是您将 nuget.config 文件放在哪里(其中列出了所有可下载 nuget 的服务器)。它不是询问哪个文件列出了您项目的已安装 nuget。 @Pure.Krome 同意,但令人兴奋的是,这个人发布了这个你认为他误解了问题的答案,实际上是这个人提出了这个问题! ;D /me 躲起来,尴尬。【参考方案4】:如果您使用代理,则必须编辑 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>
【讨论】:
以上是关于NuGet.Config 文件位于 Visual Studio 项目中的啥位置?的主要内容,如果未能解决你的问题,请参考以下文章