Как указать расположение пакетов nuget, когда включено восстановление пакетов?
Я работаю над решением.net и использую nuget для управления своими пакетами. Я выбрал опцию "Включить восстановление пакета Nuget", чтобы пакеты Nuget не регистрировались в системе контроля версий.
До этого у меня был файл nuget.config на том же уровне, что и решение, в которое я включил следующее, что позволило мне указать расположение пакетов nuget.
<settings>
<repositoryPath>..\Build\NuGetPackages\</repositoryPath>
</settings>
Поскольку я включил восстановление пакета nuget, он больше не работает. Я попытался обновить файл конфигурации в папке, сгенерированной.nuget, но это тоже не работает.
Так, где я иду не так, и как я могу указать расположение папки пакетов?
3 ответа
Вы можете изменить следующее свойство в your-solution\.nuget\NuGet.targets
файл:
<PackagesDir>$([System.IO.Path]::Combine($(SolutionDir), "packages"))</PackagesDir>
Или то же свойство, но в группе ниже, если вы используете Mono.
Когда вы включаете восстановление пакета nuget, в папке.nuget есть файл NuGet.Config.
Вот копия, показывающая путь к моей папке libs. Вы можете изменить свой, чтобы соответствовать вашему пути. Я думаю, что это немного чище, чем уже выбранный ответ.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<config>
<add key="repositoryPath" value="../../libs/packages" />
</config>
</configuration>
Вам также следует ознакомиться с примечаниями к выпуску nuget 2.1 здесь http://docs.nuget.org/docs/release-notes/nuget-2.1, где в nuget.config добавлен новый параметр для указания местоположения папки пакета.
<configuration>
<config>
<add key=" repositoryPath" value=" C:\myteam\teampackages" />
</config>
...
</configuration>