Изменить папку поиска пакетов Nuget и установить проект для Visual Studio 2017 - PullRequest
0 голосов
/ 27 ноября 2018

Я создал решение с одним проектом в VS2017.Это приложение .Net C # Winforms.Я хочу, чтобы проект загружал пакеты nuget, которые были загружены ранее другими проектами, в определенную папку на моем компьютере и добавлял их в свои ссылки.

Папка пакетов находится на расстоянии одного каталога от каталога решения..

Как мне этого добиться?

Я уже пытался добавить файл nuget.config в местоположение решения, содержащее следующий код XML:

<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <config>
    <add key="globalPackagesFolder" value="..\packages" />
    <add key="repositoryPath" value="..\packages" />
  </config>

</configuration>

Мое решение, похоже, полностью игнорировало его даже после включения его в обозреватель решений VS.

Я также читал, что globalPackagesFolder переопределяется переменной среды NUGET_PACKAGES (или что-то в том же духе), так чтосмысл устанавливать его в файле .config?Или я что-то не правильно понимаю?

Кроме того, немного не по теме, но все же, мне действительно любопытно.Когда я нажимаю «Управление пакетами nuget» в моем проекте и загружаю что-то, эти пакеты помещаются в один каталог перед файлом .csproj моего проекта.Могу ли я изменить, куда эти пакеты для этого конкретного проекта загружаются (и извлекаются из ссылок моего проекта)?

1 Ответ

0 голосов
/ 28 ноября 2018

Изменение папки поиска и установки пакетов nuget для проекта в Visual Studio 2017

Чтобы ответить на этот вопрос, нам необходимо уяснить две концепции: Источник пакета и Репозиторий .Очевидно, Package source используется для загрузки пакетов nuget, а Repository используется для хранения пакетов nuget для решения.Проще говоря, пакет управления Nuget - это загрузка пакета из package source, добавление пакета в проект и сохранение пакетов nuget в Repository.

Итак, если вы хотите, чтобы приложение Winforms загружало эти пакетыкоторые были ранее загружены другими проектами в определенную папку и добавлены в ее ссылки, вам нужно сделать две вещи (если вы правильно поняли).

Один - это добавить пакеты, которые ранее были загружены другимипроекты в ваше приложение Winforms, другой - добавить эти пакеты в определенную папку.

Чтобы решить первое, нужно загрузить пакет, поэтому мы должны создать папку, в которой будут храниться пакеты nuget, загруженные ранее другимипроекты в исходный код пакета.Перейдите в настройки-> Инструменты-> Диспетчер пакетов NuGet-> Источники пакетов, добавьте папку, в которой хранятся пакеты, ранее загруженные другими проектами, затем вы можете добавить эти пакеты в приложение Winforms через пользовательский интерфейс диспетчера пакетов nuget:

Проверьте эту ветку: Установка пакета NuGet, расположенного в локальном репозитории пакетов, в новое решение Visual Studio

Чтобы решить второй вопрос, точно так же, как вы это сделали, добавив файл nuget.configв местоположение решения, содержащее следующий XML-код:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <config>
    <add key="repositoryPath" value="..\packages" />
  </config>

</configuration>

enter image description here

Не требуется настройка для globalPackagesFolder, которая используется для глобальногоПапка с пакетами, C:\Users\<UserName>\.nuget\packages.

Примечание: После добавления nuget.config, запомните перезапустите Visual Studio, затем добавьте пакеты nuget, пакеты будут сохранены в каталоге до .slфайл моего решения (поскольку вы установили repositoryPath равно ..\packages).

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...