Я наконец-то получил NuGetPowerTools для установки после совета от digitaltrust по http://blog.davidebbo.com
Хотя NuGetPowerTools решил мою проблему, это было излишним для того, что я хотел.Это требует, чтобы вы зарегистрировали для контроля версий папку .nuget, которую она создает в корне вашего решения.Папка содержит NuGet.exe и несколько целевых файлов.Мне это не нравится, так как я считаю, что контроль версий предназначен для исходного кода, а не для инструментов.
Я пришел к следующему решению:
- Сохраните NuGet.exe в папку на локальном диске, как на dev, так и на машинах непрерывной интеграции.Я выбрал C: \ tools \ nuget \
- Добавить этот путь к переменной среды Path во всех средах
На компьютерах с непрерывной интеграцией найдите% APPDATA% \ NuGet \ NuGet.Configи введите следующее
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="LocalRepositoryName" value="http://Domain/DataServices/Packages.svc/" />
</packageSources>
Вы можете добавить более одной записи в packageSources, и NuGet будет искать их в порядке их появления
Код после сборки из моего вопроса теперь может быть изменен следующим образом.
<Target Name="BeforeBuild">
<Exec Command="nuget install $(ProjectDir)packages.config
-o $(SolutionDir)packages" />
</Target>
Конечным результатом этого является то, что всякий раз, когда изменяется утвержденное местоположение хранилища, конфигурация должнабыть изменено только в одном месте, а не в каждом файле csproj.Кроме того, именно администраторы сервера непрерывной интеграции определяют это местоположение, а не разработчики в своих вызовах командной строки.