2012-01-26 4 views
2

Я использую Nuget через консоль диспетчера пакетов Visual Studio. Для каждого проекта мне нужно добавить несколько пакетов, например. xunit.contribs, fluentassertions и nsubstitute. Для этого я набираю 3 команды в консоли.Установка нескольких пакетов через Nuget по одной команде

Я понимаю, что консоль - это еще один узел powershell, и должен быть способ создать скрипт (вроде Add-Test-Stuff.ps1), который добавит сразу несколько пакетов. Каков наилучший способ сделать это?

ответ

5

Я обычно определяю свои пакеты в массивах и выполнять их с помощью цикла Еогеаспа

$angular = "AngularJS.Animate", "AngularJS.Core", "AngularJS.Locale", "AngularJS.Resource", "AngularJS.Route", "AngularJS.Sanitize", "AngularJS.Touch" 
$angular | foreach {Install-Package $_} 

Это также может быть записано в виде однострочника

"AngularJS.Animate", "AngularJS.Core", "AngularJS.Locale", "AngularJS.Resource", "AngularJS.Route", "AngularJS.Sanitize", "AngularJS.Touch" | foreach {Install-Package $_} 
1

Это не прямой ответ на ваш вопрос, извините. Но я видел очень хороший практический подход к проекту Code52 IdeaStrike.

Они не имеют каких-либо пакетов, входящих в систему управления версиями, вместо этого они будут установлены во время сборки первого раствора и загружаются автоматически, в зависимости от packages.config

Подробная информация о конфигурации здесь:

Using NuGet without committing packages to source control

+0

Да, но вам нужно добавить их к 'packages.config' как-то. Мне интересно, как сделать это самым быстрым способом :) –

1

Поместите скрипт в свой каталог решений, и вы сможете его запустить из консоли диспетчера пакетов.

+0

ОК, можно ли поставить скрипт в какую-то домашнюю папку? –

+0

Вы можете положить его в PATH. Но я думаю, что этот сценарий специфичен для проекта. Не уверен, зачем держать его где-то в другом месте. –

+1

ну, я хочу добавить один и тот же набор пакетов ко всем моим тестовым проектам –

Смежные вопросы