Развернуть проекты ASP.net с Jenkins (без упаковки)? - PullRequest
0 голосов
/ 15 октября 2019

Я принял решение 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 руководства.

Ссылки

...