Я принял решение Visual-Studio ourProject.sln
, которое содержит несколько проектов, два из которых являются стартовыми, один на C #, другой на React. Весь исходный код хранится в удаленном репозитории GIT, и на другом сервере у нас есть Jenkins, который должен автоматически создавать проекты, но он еще не выполняет работу по развертыванию артефактов сборки на третьем сервере, где находится предварительная подготовкаверсия решения работает.
В данный момент развертывание выполняется вручную, поскольку мне еще не удалось автоматизировать процесс, и я прошу помощи, как запустить работу Дженкинса. Далее я представлю свои попытки автоматизации, а также текущий ручной процесс.
Задание Jenkins на данный момент
- Раздел Управление исходным кодом : Я выбрал GIT, ввел правильный URL-адрес хранилища, учетные данные и указал ветку
*/master
. - Раздел Триггеры сборки : Я иду на Опрос SCM с
H 7-21/4 * * 1-5
как расписание. - Раздел Среда построения : я отмечен только Ввод переменных среды для процесса сборки и Свойства Содержимое У нас есть
VSToolsPath=../packages/MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3/tools/VSToolsPath
. - Раздел Сборка :
- Сначала я выполняю пакетную команду окна
nuget.exe restore ourProject.sln
, чтобы получить соответствующие пакеты. - Затем я создаю решение для Visual Studio, используя MSBuild . Здесь у нас был только выбор использовать
.Net VS 2015 install (32bit)
. В качестве аргументов командной строки я попробовал несколько вещей, пока без ошибок работает только /t:clean;build
.
Процесс сборки и развертывания вручную
Позвольте мне процитироватьиз руководства по развертыванию проекта:
- Шаг 1. В Visual Studio Professional , перейдите к Вид> Прочие Windows> Выполнитель задачИсследователь . Убедитесь, что
webpack
не запущен, вместо этого запустите webpack-prod
и дождитесь его завершения. - Шаг 2. В Solution Explorer запустите процесс сборкидля двух запускаемых проектов щелкните правой кнопкой мыши имя проекта и выберите Опубликовать
- Шаг 3: На подготовительном компьютере запустите Internet InformationСлужбы (IIS) и перейдите на боковой панели Соединения слева на PRE-PROD> Сайты> ourProject . Чтобы остановить веб-сайт, нажмите
Stop
на правой боковой панели Действия в разделе Управление веб-сайтом . - Шаг 4: Чтобы загрузить васможно просто перетащить соответствующие файлы с локального компьютера на удаленный рабочий стол в папку
C:\inetpub\wwwroot\ourProject
. - Для проекта API скопируйте
C:\ourProject\API
в папку удаленного развертывания C:\inetpub\wwwroot\ourProject\API
. Убедитесь, что вы берете только четыре элемента bin
, Global.asax
, packages.config
и Web.config
. - . Для проекта пользовательского интерфейса скопируйте
C:\ourProject\UI
в папку удаленного развертывания C:\inetpub\wwwroot\ourProject\UI
. Выберите все элементы, кроме appSettings.config
.
- Шаг 5: Перезапустите веб-сайт, нажав
Start
на правой боковой панели Действия под Управление веб-сайтом .
Теперь моя проблема заключается в том, как автоматизировать шаги развертывания с 3 по 5.
То, что я пробовал до сих пор
Я попытался ввести шаг упаковки внутри раздела Jenkins Build , хотя мне сказали, что мне это не нужно. В качестве командной строки я попытался
/t:clean;build;package /p:PackageFileName="%workspace%/myProject_package_%BUILD_NUMBER%.zip"
, но это дает мне следующую ошибку
C: \ JenkinsWorkDir \ workspace \ ourProject.sln.metaproj: ошибка MSB4057: целевой пакет ""не существует в проекте. [C: \ JenkinsWorkDir \ workspace \ ourProject.sln]
Мне известно о ТАК вопрос об этой конкретной ошибке , но я не смог ее решить. Кроме того, я бы предпочел развертывать без упаковки, если это возможно, главным образом потому, что я не уверен, что делать с выбором файла, описанным в шаге 4 руководства.
Ссылки