Nuget создает отдельные пакеты? - PullRequest
0 голосов
/ 26 апреля 2019

Я все еще не понимаю, как работает nuget.Я git клонировать проект C # .sln и из консоли, и я выполнил эту команду nuget:

nuget restore my_project.sln

мне стало известно, что она генерирует два пакета, содержащие все зависимости, требуемые my_project.

Один пакет находится в my_project / src / packages , другой c: /users/my_user_name/.nuget/packages.Хотя файловые структуры немного отличаются, DLL-файлы в обоих пакетах идентичны.

Это меня смутило.Почему два пакета генерируются по умолчанию?Где именно Visual Studio ищет зависимости проекта?

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

1 Ответ

0 голосов
/ 26 апреля 2019

Последние версии NuGet поддерживают ссылки на пакеты в файлах проекта .

Этот формат восстанавливает пакеты по требованию, используя вашу папку% USERPROFILE% .nuget в качестве кэша. И ваша папка с решениями не будет "загрязнена" папкой пакетов с бинарными файлами, которые вы, вероятно, не хотите передавать в систему контроля версий.

VS2017 позволяет вам выбирать «PackageReferences» или более старый формат «Packages.Config» при создании новых проектов (Инструменты / Параметры / NuGetPackageManager / General).

Возможно, в вашем решении есть несколько проектов, в которых используется более старый формат "Packages.config", который хранится в папке packages в каталоге решения, и более новый формат "PackageReferences".

Чтобы преобразовать старые проекты в новый формат, я считаю, что вам нужно удалить все пакеты из проекта, а затем снова добавить их. Они будут добавлены с использованием выбранного вами формата по умолчанию и с запросом подтверждения, если вы выбрали «Разрешить выбор формата при первой установке пакета».

...