Установка пакета NuGet, расположенного в локальном репозитории пакетов, в новое решение Visual Studio - PullRequest
0 голосов
/ 24 августа 2018

ОБНОВЛЕНИЕ: По-видимому, предоставление слишком большого количества преамбул добавляет больше путаницы, чем ясности, поэтому вот мой вопрос:

Как добавить пакеты в проект из локального хранилища пакетов (т.е. не из центральногоРепозиторий NuGet), когда в текущем решении нет ссылок на них, и поэтому они не отображаются как установленные в окне «Управление пакетами для решений».

Оригинал с подробностями фона:

Мы используем локальную папку пакетов NuGet, которая содержит все пакеты, которые будут использоваться нашими проектами.Мы НЕ хотим, чтобы он произвольно обновлялся или изменялся (т.е. не устанавливал существующие пакеты или восстанавливал (если это возможно))

Мы недавно перешли на VS2017 и строим наши решения и проекты с нуля.Мы настроили NuGet.Config, чтобы он указывал на локальную папку пакетов.Это работает (как мы видим, что там устанавливаются новые пакеты, если мы тестируем-устанавливаем пакет в проект из центрального репозитория NuGet).

Однако, поскольку пакеты NuGet в настоящее время не установлены ни в какие проекты в решенииNuGet сообщает (через Get-Package или GUI), что пакеты не установлены.

Похоже, это означает, что мы не можем добавить проекты в каталоге пакетов к соответствующим решениям, не перейдя в центральныйРепозиторий NuGet, несмотря на их доступность в локальной папке пакета!

Я бы предпочел видеть пакет в репозитории, чтобы я мог добавить их в свои соответствующие проекты и попросить NuGet создать файл packages.config дляпроект (используя новый формат).

Действительно ли мне нужно переустанавливать пакеты с центрального сервера NuGet просто для того, чтобы добавить их в проект?

Установка изцентральный репозиторий NuGet буквально записывает поверх существующего пакета в локальный репозиторий.Более того, некоторые из наших пакетов используют версии, которые больше не доступны в репозитории NuGet.

В настоящее время мы работаем над редактированием файла packages.config вручную в одном проекте решения, что делает пакет видимым в окне «Управление пакетами для решений».Затем мы можем установить пакет в нашем реальном целевом проекте, просто выбрав целевой проект в графическом интерфейсе (это произведет соответствующие изменения в файле .csproj целевого проекта).Затем мы удаляем отредактированный вручную package.config из исходного проекта.

Это использует NuGet 4.6, установленный VS 2017.

Большое спасибо за любые советы.

1 Ответ

0 голосов
/ 28 августа 2018

Как добавить пакеты в проект из локального репозитория пакетов (т.е. не из центрального репозитория NuGet), если в текущем решении нет ссылок на них, и поэтому они не отображаются как установленные в "Окно «Управление пакетами для решений».

Не уверен, правильно ли я правильно понял вашу проблему, если нет, сообщите мне об этом бесплатно.

Для решения этой проблемы вы можете создатьлокальный канал для этих пакетов, так что вы можете увидеть эти пакеты в Управлении пакетами для решений и добавить их в соответствующие проекты, а NuGet создаст файл packages.config для проекта, даже если они не установлены.

  • Добавьте эти пакеты .nupkg в локальную папку репозитория (включая те версии, которые больше не доступны в репозитории NuGet).
  • Перейдите в Visual Studio и откройте настройки NuGetчерез Сервис> Диспетчер пакетов NuGet> Настройки диспетчера пакетов.Перейдите на вкладку «Источники пакетов» в диалоговом окне «Параметры», а затем в левом верхнем углу значок plus, чтобы добавить новый источник пакета.
  • Введите имя и источник вашего локального репозитория.Имя может быть любой строкой и будет отображаться в диспетчере пакетов NuGet в Visual Studio.

enter image description here

Теперь, когда вы добавилилокальный источник пакета, вы сможете использовать свой локальный репозиторий из Visual Studio обычным способом, либо через консоль, либо через диалоговое окно пакета, выбрав его в меню «Источник пакета»:

enter image description here

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

...