Nuget.config полностью игнорируется, несмотря ни на что - PullRequest
1 голос
/ 25 июня 2019

Я хочу указать, где хранятся пакеты при восстановлении nuget.Конечно, это задокументировано в MSDN, и, конечно, оно никогда не работает ....

У меня есть тестовое решение, хранящееся в D: \ Development \ Test \ Test.sln

Согласнок их документации , nuget больше не ищет в папке .nuget внутри папки решения.Вместо этого он теперь смотрит в папку с решениями или далее вверх по цепочке.Поэтому я могу сохранить nuget.config в

  • D: \ Development \ Test \ Nuget.Config
  • D: \ Development \ Nuget.Config
  • D:\ Nuget.Config

Ну, я попробовал все три из них и перезапустил Visual Studio больше раз, чем я готов сосчитать.

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

nuget config -set repositoryPath=D:\Development\test\packages -configfile ..\nuget.config

Вот как выглядит XML:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="repositoryPath" value="D:\Development\test\packages" />
  </config>
</configuration>

После настройки Nuget.config с помощью nuget.exe я снова попробовал любое из предыдущих расположений (D: \; D: \ Development \; D: Development \ Test), перезапускал Visual Studio при каждом изменении местоположения,Решение RichT Click, выберите «Восстановить пакеты nuget» и получите тот же результат: нулевые пакеты восстанавливаются в указанном мной пути к репозиторию.

Итак, в качестве последней попытки я попытался восстановить nuget из командной строки:

D:\Development\test>nuget restore test.sln -ConfigFile ..\nuget.config
MSBuild auto-detection: using msbuild version '16.1.76.45076' from 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin'.
Restoring packages for D:\Development\test\test\test.csproj...
Restoring packages for D:\Development\test\ClassLibrary1\ClassLibrary1.csproj...
Committing restore...
Committing restore...
Generating MSBuild file D:\Development\test\ClassLibrary1\obj\ClassLibrary1.csproj.nuget.g.props.
Generating MSBuild file D:\Development\test\test\obj\test.csproj.nuget.g.props.
Writing assets file to disk. Path: D:\Development\test\ClassLibrary1\obj\project.assets.json
Writing assets file to disk. Path: D:\Development\test\test\obj\project.assets.json
Restore completed in 603,63 ms for D:\Development\test\ClassLibrary1\ClassLibrary1.csproj.
Restore completed in 603,6 ms for D:\Development\test\test\test.csproj.

NuGet Config files used:
    D:\Development\nuget.config

В нем даже упоминается, что он использует мой nuget.config, но, опять же, ZERO-пакеты восстанавливаются в моей папке с назначенными пакетами!

Я действительно надеюсь, что кто-нибудь может сказать мне, каким странным образом это происходит.должен работать.

Ответы [ 2 ]

3 голосов
/ 25 июня 2019

Это nuget.config, хранящееся в подпапке на E:, работает для меня в Visual Studio 2019, когда я загружаю решение в эту подпапку или ниже:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="repositoryPath" value="D:\NugetPackages" />
    <add key="globalPackagesFolder" value="D:\NugetPackages" />
    <add key="dependencyVersion" value="Highest" />
  </config>
</configuration>

Ключевое отличие заключается в том, что у меня также естьзапись globalPackagesFolder, указывающая на ту же папку - в соответствии с документами эта настройка используется "проектами, использующими только PackageReference".Я предлагаю вам попробовать добавить запись globalPackagesFolder.

0 голосов
/ 25 июня 2019

попробуйте

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <config>
        <add key="repositoryPath" value=@"D:\Development\test\packages" />
    </config>
</configuration>
...