2013-03-12 3 views
2

Nuget не выполняет сценарии при восстановлении пакетов в проекте.NuGet не выполняет сценарии при восстановлении пакетов

Вот сценарий: У меня есть проект, в котором установлен пользовательский пакет NuGet. Этот проект поддерживает восстановление пакета NuGet для решения. Все это работает безупречно, и я тестировал его несколько раз, получая проект из TFS в пустую папку.

Я добавил init.ps1 и install.ps1 в пакет nuGet, и пакет по-прежнему загружен и установлен правильно, но сценарии не выполняются, если пакет не установлен вручную.

Если быть точным, если я впервые получаю проект из TFS, ни init.ps1, ни install.ps1 не выполняется.

Однако, если я закрою решение и снова его закрою, init.ps1 выполнит (как и ожидалось), но, конечно же, install.ps1 все еще не работает, поскольку пакет уже восстановлен/установлен.

Оба сценария выполняются обычно, когда пакет установлен/удален вручную (т. Е. Он не запускается, если пакет «восстановлен»).

В моем интернет-поиске не было ссылок на это поведение. Я пропустил что-то очевидное, или это нормально, когда пакеты восстанавливаются?

+3

Восстановление пакета просто восстанавливается, а не устанавливается. Я думаю, что это по дизайну. http://nuget.codeplex.com/workitem/2728 –

+0

Спасибо за ссылку - это тоже мой вывод. Я не понял намерения, стоящие за init.ps1. Что касается install.ps1, это имеет смысл, я думаю, поскольку пакет, по сути, уже «установлен» - он просто отсутствует в папке проекта, следовательно, «восстанавливается». –

ответ

1

Функция восстановления пакета используется, чтобы не все пакеты были проверены в исходном элементе управления. Таким образом, единственное, что он делает - это вытащить пакеты NuGet в вашу папку ./solution/packages, чтобы пути сборки и ссылки могли быть правильно решены при сборке. NuGet не выполняет переустановку как часть восстановления, а это означает, что он не будет делать каких-либо преобразований файлов xml или запускает сценарии установки/удаления PowerShell при восстановлении.

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