Вернитесь к package.config

Можно ли вернуться к схеме packages.config вещей? Когда я создал проект, я перешел к схеме PackageReference, но по некоторым причинам теперь нужно перейти к старым способам.

Я попробовал команды консоли диспетчера пакетов, например, восстановить с помощью параметров Update и Reinstall. Они больше не генерируют package.config. Я также переключил Tools > Options > NuGet Package Manager на packages.config. Нехорошо.

Ответ 1

Вам нужно будет:

  1. Добавить "пустой" файл packages.config в проект (то есть xml, как в примере, но без отдельных элементов <package>)
  2. Выгрузите проект или закройте vs и откройте файл csproj в текстовом редакторе.
  3. Удалите все элементы PackageReference из файла проекта.
  4. Убедитесь, что <RestoreProjectStyle> не установлен в файле проекта.
  5. Вновь открыть проект в VS.

Ответ 2

Мне не хватило одного шага:

4,5. Убедитесь, что в Tools>Options>NuGet Package Manager>General>Default package management format указано значение " Packages.config

Ответ 3

Хотел добавить еще одну вещь. Я попробовал все вышеперечисленные шаги, и Visual Studio продолжала пытаться использовать расположение глобальных пакетов вместо repositoryPath из Nuget.config. В конце концов обнаружил, что в файле obj dir моих проектов был файл package-lock.json, в котором хранился глобальный каталог пакетов. По какой-то причине операция очистки в Visual Studio не удаляла файл, поэтому я завел

git clean -x -d -f

В корне моего хранилища. Который удаляет все неотслеживаемые файлы и директоры и игнорирует шаблоны файла .gitignore. Это было немного чрезмерно, я мог бы попытаться найти их всех вручную, но это сделало свою работу. Теперь Nuget restore правильно использует параметр repositoryPath, указанный в файле Nuget.Config.