Как указать расположение пакетов 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>
Другие вопросы по тегам