常见的 NuGet 配置
谢谢。
本文内容
NuGet 的行为由一个或多个 NuGet 中的累积设置驱动。(XML) 文件,可以存在于项目范围、用户范围和计算机范围级别。还可以使用全局 .file 专门配置包源。这些设置适用于在 CLI、包管理器控制台和包管理器 UI 中发出的所有命令。
配置文件 NuGet 的位置和范围。文件位置说明
解决方案
当前文件夹(又名解决方案文件夹)或驱动器根目录之前的任何文件夹。
在解决方案文件夹中,设置适用于子文件夹中的所有项目。请注意,如果配置文件位于项目文件夹中,则不会影响该项目。
用户
:
mac/Linux: 或 ~/.nuget/NuGet/NuGet。(因操作系统分布而异)
所有平台都支持其他配置。这些配置无法通过该工具进行编辑。
:
%%\NuGet\\*.
mac/Linux: 或 ~/.nuget//*。
该设置适用于所有操作,但可以被任何项目级设置覆盖。
:
mac/Linux:. 如果 $ 的值为 null 或为空,将使用 ~/.local/share 或 /usr/local/share(取决于操作系统版本)
设置虽然适用于计算机上的所有操作,但会被任何用户级或项目级设置覆盖。
NuGet 早期版本的说明:
更改配置设置
NuGet。文件是包含键/值对的简单 XML 文本文件,请参阅 NuGet。话题。
设置通过 NuGet CLI 命令进行管理:
警告
尽管您可以在任何文本编辑器中修改文件,但如果配置文件包含格式错误的 XML(标签不匹配、引号无效等),NuGet(v3.4.3 及更高版本)将静默忽略整个配置文件。因此建议使用 nuget 来管理设置。
设置
:
# Set repositoryPath in the user-level config file
nuget config -set repositoryPath=c:\packages
# Set repositoryPath in project-level files
nuget config -set repositoryPath=c:\packages -configfile c:\my.Config
nuget config -set repositoryPath=c:\packages -configfile .\myApp\NuGet.Config
# Set repositoryPath in the computer-level file (requires elevation)
nuget config -set repositoryPath=c:\packages -configfile %ProgramFiles(x86)%\NuGet\Config\NuGet.Config
mac/Linux:
# Set repositoryPath in the user-level config file
nuget config -set repositoryPath=/home/packages
# Set repositoryPath in project-level files
nuget config -set repositoryPath=/home/projects/packages -configfile /home/my.Config
nuget config -set repositoryPath=/home/packages -configfile home/myApp/NuGet.Config
# Set repositoryPath in the computer-level file (requires elevation)
nuget config -set repositoryPath=/home/packages -configfile $XDG_DATA_HOME/NuGet.Config
注意
在 NuGet 3.4 及更高版本中,环境变量可以用于任何值,类似于 =%%() 和 =$(mac/Linux)。
删除值
要删除一个值,请指定一个具有空值的键。
# Windows
nuget config -set repositoryPath= -configfile c:\my.Config
# Mac/Linux
nuget config -set repositoryPath= -configfile /home/my.Config
创建一个新的配置文件
将下面的模板复制到一个新文件中,然后使用 nuget - 设置值:
<?xml version="1.0" encoding="utf-8"?>
如何应用设置
多个 NuGet .file 可用于将设置存储在不同位置,以便将设置应用于单个项目、一组项目或所有项目。这些设置共同适用于从命令行调用的任何 NuGet 操作,或者“最接近”项目或当前文件夹的设置优先。
具体来说墨语涂鸦,NuGet 将按以下顺序从不同的配置文件中加载设置:
,其中仅包含与包源相关的设置。计算机级文件。用户级文件。使用 - 指定文件。在从驱动器根目录到当前文件夹(调用 nuget.exe 的位置或包含项目的文件夹)的路径中的每个文件夹中找到的文件。例如,如果您在 c:\A\B\C 中调用命令,NuGet 将在 c:\ 中查找并加载配置文件,然后是 c:\A、c:\A\B,最后是 c:\A \B\C。
当 NuGet 在这些文件中找到设置时,将按如下方式应用设置:
对于单项元素,NuGet 会将之前找到的值替换为相同的键。也就是说,与当前文件夹或项目“最接近”的设置将覆盖之前找到的任何其他设置。例如mac命令行怎么找的软件位置,如果 . 存在于任何其他配置文件中,此设置将被覆盖。对于集合元素(例如
)夕风OCR图文识别工具,NuGet 会将所有配置文件中的值组合成一个集合。当存在于给定节点中时云脉ocr护照识别,NuGet 将忽略先前为该节点定义的配置值。
暗示
在项目存储库的根目录中添加 nuget.file。这被认为是最佳实践,因为它提高了可重复性并确保不同用户具有相同的 NuGet 配置。
设置演练
假设在两个单独的驱动器上具有以下文件夹结构:
disk_drive_1
User
disk_drive_2
Project1
Source
Project2
Source
tmp
然后将有 4 个 NuGet。在以下位置具有给定内容的文件。(此示例不包括计算机级文件mac命令行怎么找的软件位置,其行为类似于用户级文件。)
文件 A. 用户级文件(%%\NuGet\NuGet. on mac/Linux, ~/./NuGet/NuGet. on Linux):
<?xml version="1.0" encoding="utf-8"?>
文件 B./NuGet.:
<?xml version="1.0" encoding="utf-8"?>
文件 C. //NuGet.:
<?xml version="1.0" encoding="utf-8"?>
档案D。//NuGet.:
<?xml version="1.0" encoding="utf-8"?>
接下来,NuGet 将根据调用设置的位置按如下方式加载和应用设置:
其他用户范围的配置
从版本 5.7 开始,NuGet 增加了对其他用户范围配置文件的支持。此更新允许第三方供应商在不升级的情况下添加其他用户配置文件。这些配置文件位于子文件夹内的标准用户范围配置文件夹中。所有以 . 结尾的文件。要么 。会被考虑。标准工具无法编辑这些文件。
OS平台的其他配置
%%\NuGet\\*.
mac/Linux
~/./NuGet//*. 或 ~/.nuget//*。
NuGet 默认文件
这 。文件用于指定安装和更新包的包源,以及控制使用 nuget push 发布包的默认目标。因为管理员可以轻松地将一致的 .files 部署到开发人员和构建机器(例如,使用组策略),他们可以确保组织中的每个人都使用正确的包源,而不是 .
重要的
.files 永远不会导致开发人员的 NuGet 配置中的包源被删除。即如果开发者使用过NuGet,也就是注册了包源,这个包源在. 文件被创建。
还, 。或 NuGet 中的任何其他机制都不会阻止对包源的访问,例如 . 如果组织希望阻止此类访问,则必须通过防火墙等其他方式进行。
. 地点
下表根据目标操作系统进行描述。文件应该存储在哪里:
操作系统平台。位置
2017 或 NuGet 4.x+:
2015 及更早版本或 NuGet 3.x 及更早版本:
mac/Linux
$(通常为 ~/.local/share 或 /usr/local/share,取决于操作系统版本)
的设置示例。和应用
<?xml version="1.0" encoding="UTF-8"?>
发表评论