Скрипты PowerShell для установки пакетов nuget - PullRequest
3 голосов
/ 07 июня 2011

Всякий раз, когда я запускаю проект, я хочу установить пакеты NuGet Elmah, Glimpse, MvcScaffolding, Squishit и ... - ну, это те, о которых я знаю.Может быть, мне стоит установить и другие?

В любом случае, вместо того, чтобы запоминать все это, было бы хорошо поместить все это в сценарий, и все, что мне нужно сделать, это запустить его.Тем не менее, я впервые сталкиваюсь с PowerShell, и я не уверен, как это сделать.

Я посмотрел пример проекта, и сценарий выглядит достаточно простым, но я не совсем понимаю, как это сделать.Почему необходимо установить пакет с суффиксом .test?Почему также параметр -Project?

Например,

Install-Package SqlServerCompact -Project MileageStats.Data.SqlCe
Install-Package SqlServerCompact -Project MileageStats.Data.SqlCe.tests

Я сделал поиск в Google, чтобы узнать больше, но, думаю, я смотрю не в тех местах.

Ответы [ 3 ]

7 голосов
/ 17 июня 2011

Создание шаблона проекта с необходимыми пакетами NuGet, как уже предположил Фабрис, возможно, я бы выбрал. Для получения последних версий пакетов NuGet вы можете использовать пакет NuGet Package Updater . Это позволит обойти шаблон проекта, который в настоящее время поддерживает только установку конкретной версии пакета NuGet.

В качестве альтернативы вы можете хранить полезные скрипты PowerShell внутри профиля NuGet . Создайте файл с именем NuGet_profile.ps1 в каталоге % UserProfile% \ Documents \ WindowsPowerShell (например, C: \ Users [YourUserName] \ Documents \ WindowsPowerShell \ NuGet_profile.ps1).

Внутри NuGet_profile.ps1 вы можете добавить функции PowerShell, которые можно вызывать из окна консоли диспетчера пакетов в Visual Studio. Вам нужно будет перезапустить Visual Studio перед вызовом функций. Пример файла NuGet_profile.ps1 показан ниже.

function Install-StandardPackages {
    param(
        [Parameter(position=0, mandatory=$true)]
        [string]$projectName
    )

    Install-Package elmah -ProjectName $projectName
    Install-Package SqlServerCompact -ProjectName $projectName
}

function Install-StandardPackagesForAllProjects {
    foreach ($project in Get-Project -all) {
        Install-StandardPackages $project.Name
    }
}

Теперь, когда эти функции определены, вы можете запустить следующее в консоли диспетчера пакетов, чтобы установить elmah и SqlServerCompact в проект MyProject.

Install-StandardPackages MyProject

Или вы можете установить elmah и SqlServerCompact во все проекты в текущем открытом решении, запустив в консоли диспетчера пакетов следующую команду.

Install-StandardPackagesForAllProjects

Параметр -ProjectName в команде Install-Package используется для указания имени проекта, в который будет установлен пакет. Суффикс тестов выглядит так, как будто он является частью имени проекта, содержащего модульные тесты.

0 голосов
/ 08 июня 2011

Возможно, вы захотите создать свой собственный шаблон проекта mvc3, в котором вы можете указать предпочитаемые пакеты Nuget.Для этого вам нужно взглянуть на Phil Haack сообщение в блоге

0 голосов
/ 07 июня 2011

Решением для вас может быть создание пакета мета-нугетов, который вы размещаете в локальном репозитории. Вы создаете пакет nuget с зависимостями от всех различных пакетов, которые вы хотите иметь для вашей конкретной настройки проекта. Все, что вам нужно сделать, это установить метапакет, который, в свою очередь, установит все зависимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...