2014-11-08 1 views
0

Когда мы загружаем проект git и нажимаем кнопку build в VS, он восстанавливает пакеты nuget и затем компилируется. всегда здорово.установить шоколадные пакеты redis для VisualStudio при сборке

Как раз так, я хотел бы установить Redis локально перед компиляцией, потому что для моего проекта тестирования проекта требуется Redis.

Я нашел Redis-64 in nuget, но я не знаю, почему он не устанавливается должным образом. Он показывает, что «Redis-64 уже установлен», но это не так.

Chocolately nuget package и Redis for chocolatey. Похоже, что они их используют.

Для достижения своей цели, было бы необходимо (1) проверки установки chocolately первого, а затем (2) загрузить Redis-64, а затем (3) выполнить redis-server.exe перед тем процесс компиляции (может быть помещен в команду события Pre-build в .csproj).

Я хочу знать, как проверить шоколадную установку Redis и остальные шаги в VS. Не могли бы вы научить меня, как этого добиться?

ответ

1

Я мог бы быть в стороне от знака здесь, но пакет redis, на который вы ссылаетесь, то есть от NuGet, должен включать только сборки, которые вы могли бы использовать в своем приложении. Если вы действительно хотите установить приложение Redis, вам нужно установить приложение Redis с Chocolatey.org, которое вы можете найти here.

С точки зрения получения Chocolatey и т. Д., Установленных как часть вашего процесса сборки, вы можете взглянуть на build script for ChocolateGUI. Как часть его сборки, которая выполняется на AppVeyor, она проверяет Chocolatey, а если ее нет, устанавливает ее и все необходимые приложения.

За то, что вы хотите, я думаю, вы должны включать в себя:

choco install redis

В сценарии сборки, и это даст вам redis-server.exe, что вы ищете.

+1

Вы далеко знак здесь. :-) Пакет 'redis-64' NuGet содержит фактический сервер 'redis-server.exe'. –

+0

Похоже, вы абсолютно правы :-) Кажется, что пакет redis-64 на Nuget.org точно такой же, как пакет на Chocolatey.org. Единственное, что Chocolatey сделает в дополнение к его установке, - это создать прокладку для exe, значит, она может быть выполнена из любого места. –

0

Я установил пакет NuGet redis-64, и он просто сработал для меня. Это необычный пакет, поскольку он не ассоциируется с каким-либо проектом Visual Studio, а скорее ссылается от уровня решения packages.config.

Чтобы использовать сервер Redis в моей интеграции тест, я запустить сервер с этим кодом:

Process.Start(new ProcessStartInfo(Path.Combine(Directory.GetDirectories(@"..\..\..\packages", "Redis-64.*").Single(), "redis-server.exe"), "--bind 127.0.0.1") { 
    WindowStyle = ProcessWindowStyle.Hidden 
});