Ответ 1
Вы можете указать, куда должна быть помещена папка пакетов (или изменить ее имя) с помощью файла nuget.config.
Смотрите: Настройки конфигурации NuGet или Укажите "пакеты" Местоположение папки
Как я могу указать одно центральное место, где будут установлены все пакеты nuget, чтобы все проекты могли ссылаться на одну и ту же папку пакетов.
Когда 1 проект удаляется, ссылка не зависит от другого проекта. поэтому я могу легко обновить новую версию nuget в одной папке и работать на всех.
Он также сохранит дисковое пространство в исходном элементе управления.
Может кто-нибудь дать мне какие-либо предложения?
Вы можете указать, куда должна быть помещена папка пакетов (или изменить ее имя) с помощью файла nuget.config.
Смотрите: Настройки конфигурации NuGet или Укажите "пакеты" Местоположение папки
На самом деле есть два шага для правильного восстановления пакетов в другом месте. Предполагая, что вы использовали Visual Studio (щелкните правой кнопкой мыши по решению → Включить восстановление пакета), у вас будет каталог .nuget в том же каталоге, в котором находится ваше решение. Вам нужно отредактировать два файла, чтобы получить это право.
Изменить NuGet.Config Добавьте путь к пути репозитория, как указано в документации.
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<config>
<add key="repositorypath" value="..\..\packages" />
</config>
</configuration>
..\пакеты будут имитировать поведение по умолчанию. путь к папке проекта (а не папке .nuget), поэтому....\будет каталогом из ваших файлов проекта.
Если ваши проекты действительно повсюду, подумайте над перемещением файла Nuget.config в корень вашего исходного дерева и настройте repositryPath
относительно этого местоположения. Конечно, вы можете использовать полные пути, но это уродливо.
Во-вторых, вам нужно удалить опцию solutionDir
из команды restore (они не говорят вам об этом в любом месте). Для этого отредактируйте NuGet.targets
Найдите элемент RestoreCommand
и удалите аргумент solutionDir
.
Из этого: <RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir)</RestoreCommand>
К этому: <RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch)</RestoreCommand>
В зависимости от того, в какой версии Visual Studio вы сгенерировали файлы, фактический XML может отличаться от моего примера. Просто убедитесь, что опция удалена и оставить все остальное одинаковым.
NB. Теперь, когда вы изменили расположение каталога пакетов (или даже назвали его чем-то другим), вам нужно будет обновить ссылки на проект, чтобы указать на новое местоположение. Очевидно, рекомендуются относительные пути. Вы можете сделать это вручную в Visual Studio (больно) или открыть файлы .csproj/.vbproj и найти/заменить HintPath
для ссылки.