TL; DR: Да
NuGet использует иерархическое приложение источников пакетов, начиная с NuGet.config на уровне вашего профиля пользователя Windows, а затем применяя все более и более детальную конфигурацию, начиная с корня пути к файлу, содержащего ваше решение, и, наконец, заканчивая каталогом, содержащим ваше решение. файл решения.
Итак, вот что мне удалось выяснить - любезно любезный Twitterer указал мне на этот документ:
https://docs.nuget.org/consume/nuget-config-file
Когда вы редактируете источники пакета NuGet в параметре Visual Studio Tools > NuGet Package Manager > Package Manager Settings: Package Sources
, он применяет эти изменения по умолчанию к файлу NuGet.config, найденному в вашем %APPDATA%\NuGet
каталоге. Чтобы переопределить эти параметры для каждого решения (или для группы решений), вам необходимо добавить стратегически размещенный файл NuGet.config где-нибудь по пути к вашему решению или решениям.
Все станет ясно, если вы прочитаете документ NuGet, решение, которое я предлагаю ниже, быстро позволит вам указать конфигурацию для одного решения Visual Studio:
- Перейдите в% APPDATA% \ NuGet и возьмите копию NuGet.config.
- Выгрузите копию в корень вашего решения, то есть там, где находится Application.sln.
- Переопределите значения по умолчанию, примененные к вашему профилю пользователя, отредактировав копию, чтобы она содержала только те источники пакетов NuGet, которые имеют отношение к этому решению - например, частный источник NuGet, который содержит проприетарные пакеты для этого решения, но не должен применяться к другим проектам. - например:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageRestore>
<add key="enabled" value="True" />
<add key="automatic" value="True" />
</packageRestore>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<packageSources>
<clear />
<add key="My Private NuGet Server" value="http://myprivatenuget.com:8080/nuget" />
</packageSources>
<disabledPackageSources>
<add key="Microsoft and .NET" value="true" />
</disabledPackageSources>
</configuration>
Если вы хотите, чтобы конфигурация применялась к нескольким решениям, убедитесь, что все папки вашего решения содержатся в общем каталоге, и поместите NuGet.config для источников пакетов, относящихся к этим решениям, в этот общий каталог, гарантируя, что все папки решений для проектов, которые не «т использовать эти источники пакетов не содержится в этой общей папке.