Проблема веб-развертывания MSBuild при миграции на новый сервер - PullRequest
0 голосов
/ 23 февраля 2019

Справочная информация:

Новое в MSBuild и MSDeployПопытка построить новый сервер сборки Jenkins на основе существующего живого сервера.Есть известные различия между сервером, через который я пытаюсь работатьЯ просто пытаюсь выдвинуть нужные кусочки (очищение от мусора)Для меня это не похоже на проблему, связанную с Дженкинсом, потому что, если я запускаю команду за пределами Дженкинса, она все равно терпит неудачуВся информация MSBuild извлекается из git (так же, как и в прямом эфире), поэтому я использую то же самое в этом отношенииЯ понимаю, что мои заявления довольно бесполезны, если это правильное словоНадеюсь, вы не перестанете читать здесь, потому что я предоставлю некоторые подробности, хотя процесс сборки велик.Извините за форматирование.Много копий и вставок, с которыми редактор не справляется.

Проблема:

То, что происходит на новом сервере разработчика, я получаю в следующем разделе, и он не работает.

PipelineCopyAllFilesToOneFolderForMsdeploy:Этап публикации этапа развертывания конвейера PipelineCopyAllFilesToOneFolderForMsdeployПакет:Вызов Web Deploy для генерации пакета со следующими настройками:$ (LocalIisVersion) составляет 8$ (DestinationIisVersion) равно 8$ (UseIis) является ложным$ (IncludeIisSettings) является ложным$ (_ DeploymentUseIis) имеет значение False$ (DestinationUseIis) является ложнымGetMSDeployInstalledVersionPath:$ (_ DefaultMSDeployMaxVersion) равно 3$ (_ MSDeployVersionsToTry) составляет 9,0$ (MSDeployPath) - это C: \ Program Files \ IIS \ Microsoft Web Deploy V3 \GenerateMsdeployManifestFiles:Создать исходный файл манифеста для пакета Web Deploy / опубликовать ...PackageUsingManifest:Упаковка в D: \ workspace \ 1002 \ MSDeploy.Запуск задачи веб-развертывания из источника:Манифест (D: \ workspace \ 1002 \ MSDeploy.SourceManifest.xml) в целевой: пакет (D: \ workspace \ 1002 \ MSDeploy). C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.targets (4007,5): ошибка: сбой задачи веб-развертывания.(Файл пакета 'D: \ workspace \ 1002 \ MSDeploy' не имеет расширения имени файла .zip.) [D: \ workspace \ 1002 \ Site \ Integration \ Integration.csproj]Пакет не удалось.Готово Создание проекта "D: \ workspace \ 1002 \ Site \ Integration \ Integration.csproj" (цели по умолчанию) - СБОЙ.

Вот тот же раздел нашего живого сервера Jenkins для той же работы.

PipelineCopyAllFilesToOneFolderForMsdeploy:Этап публикации этапа развертывания конвейера PipelineCopyAllFilesToOneFolderForMsdeployПакет:Вызов Web Deploy для генерации пакета со следующими настройками:$ (LocalIisVersion) составляет 8$ (DestinationIisVersion) равно 8$ (UseIis) является ложным$ (IncludeIisSettings) является ложным$ (_ DeploymentUseIis) имеет значение False$ (DestinationUseIis) является ложным Создание каталога "D: \ workspace \ 1002 \ MSDeploy \" .GetMSDeployInstalledVersionPath:$ (_ DefaultMSDeployMaxVersion) равно 3$ (_ MSDeployVersionsToTry) составляет 9,0$ (MSDeployPath) - это C: \ Program Files \ IIS \ Microsoft Web Deploy V3 \GenerateMsdeployManifestFiles:Создать исходный файл манифеста для пакета Web Deploy / опубликовать ...PackageUsingManifest:Упаковка в D: \ workspace \ 1002 \ MSDeploy \ Integration.zip.Запуск задачи веб-развертывания из источника:манифест (D: \ workspace \ 1002 \ MSDeploy \ Integration.SourceManifest.xml) в целевой: пакет (D: \ workspace \ 1002 \ MSDeploy \ Integration.zip).Добавление sitemanifest (сайтманифест).Добавление приложения IIS (D: \ workspace \ 1002 \ Site \ Integration \ obj \ Release \ Package \ PackageTmp) Создание приложения (D: \ workspace \ 1002 \ Site \ Integration \ obj \ Release \ Package \ PackageTmp)

Вы заметите, что у этого есть еще одно значение, которого нет у неудавшегося:

Создание каталога "D: \ workspace \ 1002 \ MSDeploy \".

Кроме того, если я возвращаюсь назад через журнал сборки, я замечаю эту существенную разницу.

Сервер разработчика

ValidateGlobalPackageSetting:$ (PackageAsSingleFile) равен True$ (PackageFileName) равно D: \ workspace \ 1002 \ MSDeploy.Проверка ...

Живой сервер (работает)

ValidateGlobalPackageSetting:$ (PackageAsSingleFile) равен True$ (PackageFileName) равно D: \ workspace \ 1002 \ MSDeploy \ Integration.zip. Проверка ...

Я надеюсь на эти различия и на ошибку, с которой кто-то мог столкнуться, и знает, где мне указать на различия между серверами.

Вот некоторые версии для заметки:

WindowsОба работают под управлением Windows 2012 R2

MSBuild запускается на протяжении всего процесса сборки из C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319Версия файла 4.7.3062.0Это одна и та же версия на dev и live (работающая).Во-первых, живой сервер не показывает .NET 4.7 в разделе «Программы и компоненты», хотя там установлены пакеты, которые я использовал для получения 4.7 на dev.Это почти как MSBuild был скопирован вручную, чтобы жить в какой-то момент.Или это означает, что это пришло от установки VS?Снова версии dev и live msbuild одинаковы на обоих серверах.Новый Dev терпит неудачу.Живые работы.

ВебВ программе и особенностяхMicrosoft Wed Deploy 3.5 3.1237.1764Инструмент веб-развертывания 1.1.0618

.NET

dev

C: \ Users \ ccnet_new> wmic продукт, в котором «Имя как« Microsoft .Net% »» получает имя, версиюНазвание ВерсияMicrosoft .NET Framework 4.5.1 Multi-Targeting Pack 4.5.50932Microsoft .NET Framework 4.5.2 Multi-Targeting Pack (ENU) 4.5.51209Microsoft .NET Framework 4.6.1 SDK 4.6.01055Многоцелевой пакет Microsoft .NET Framework 4.5 4.5.50710Microsoft .NET Framework 4.7 SDK 4.7.02053Microsoft .NET Framework 4.5.1 Multi-Targeting Pack (ENU) 4.5.50932Microsoft .NET Framework 4.6.2 SDK 4.6.01590Microsoft .NET Framework 4.7 Targeting Pack (ENU) 4.7.02053Microsoft .NET Framework Накопительный пакет Intellisense для Visual Studio (ENU) 4.7.02558Многоцелевой пакет Microsoft .NET Framework 4 4.0.30319Microsoft .NET Framework 4.5 SDK 4.5.50709Microsoft .NET Framework 4.5.2 Multi-Targeting Pack 4.5.51651Microsoft .NET Framework 4.6.1 Targeting Pack 4.6.01055Microsoft .NET Framework 4.6.2 Targeting Pack 4.6.01590Microsoft .NET Framework 4.5.1 SDK 4.5.51641Microsoft .NET Framework 4.6.2 Targeting Pack (ENU) 4.6.01590Microsoft .NET Framework 4.7 Targeting Pack 4.7.02053C: \ Users \ ccnet_new>

Live

C: \ Users \ CCNET_NEW> wmic продукт, где «Имя, например,« Microsoft .Net% »» получает имя, версиюНазвание ВерсияMicrosoft .NET Framework 4.5.1 Multi-Targeting Pack 4.5.50932Microsoft .NET Framework 4.5.2 Multi-Targeting Pack (ENU) 4.5.51209Microsoft .NET Framework 4.6.1 SDK 4.6.01055 Многоцелевой пакет Microsoft .NET Framework 4.5 4.5.50710 Microsoft .NET Framework 4.5.1 Multi-Targeting Pack (ENU) 4.5.50932Microsoft .NET Core Host FX Resolver - 2.0.9 (x64) 16.36.26615Microsoft .NET Core Host - 2.0.6 (x86) 16.24.26212Microsoft .NET Core Host FX Resolver - 2.0.6 (x64) 16.24.26212Microsoft .NET Framework 4.6.2 SDK 4.6.01590Microsoft .NET Framework Накопительный пакет Intellisense для Visual Studio (ENU) 4.7.02558Microsoft .NET Core Runtime - 2.0.6 (x64) 16.24.26212Microsoft .NET Core Host - 2.0.6 (x64) 16.24.26212Многоцелевой пакет Microsoft .NET Framework 4 4.0.30319Microsoft .NET Framework 4.5 SDK 4.5.50709Microsoft .NET Framework 4.5.2 Multi-Targeting Pack 4.5.51651Microsoft .NET Framework 4.6.1 Targeting Pack 4.6.01055Microsoft .NET Framework 4.6.2 Targeting Pack 4.6.01590Microsoft .NET Core Runtime - 2.0.9 (x64) 16.36.26615Microsoft .NET Core Host - 2.0.9 (x64) 16.36.26615Microsoft .NET Core Host FX Resolver - 2.0.6 (x86) 16.24.26212Microsoft .NET Framework 4.5.1 SDK 4.5.51641Microsoft .NET Core Runtime - 2.0.6 (x86) 16.24.26212Microsoft .NET Framework 4.6.2 Targeting Pack (ENU) 4.6.01590Microsoft .NET Core SDK - 2.1.202 (x64) 8.50.40411C: \ Users \ CCNET_NEW>

Ядро .NET, которое я не думаю, должно иметь значение (обновление я установил, но все еще не исправил).Интеллисенс не должен.Так что оставляет 4,5 таргетинга.Остальные должны совпадать.Обновление 4.5 таргетинга там просто скрыто как системный компонент

изменена ссылка на Microsoft.cpp.Может ли что-нибудь в папке c: \ Program Files (x86) \ MSBuild иметь какое-либо отношение к моей проблеме.Выглядит одинаково между обоими серверами.Я только видел некоторые сообщения на этот счет и не был уверен.

У Dev нет файлов в папке v4.0, и все файлы находятся в папке V4.0 \ V110 (файлы поддержки, целевые файлы и т. Д.),

Наконец-то Regedit для cpp

Live имеет VCTargetPath в папке v4.0.

У Dev нет VCTargetPath в папке V4.0.

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

В итоге сборка на нашем живом сервере работает.Сборка на новом сервере разработки, который я пытаюсь собрать, не работает.Между серверами есть разные части, которые, кажется, не должны иметь значения, и я знаю, что это не очень хорошая вещь.Такие вещи, как у одного есть Java, у другого нет, но это все вокруг Дженкинса.У нас нет java-материалов в нашем программном обеспечении.Такие вещи, как различия в SSDT, но мои файлы схемы отлично работают с БД, так что это не должно иметь значения.Я знаю, что, вероятно, что-то упускаю из виду. Надеюсь, кто-то может указать мне в этом направлении.

Я должен был также добавить, что, если я оставлю всю структуру файловой системы на месте после неудачной сборки, перейду в командную строку и выполню:

D: \ workspace \ 1002> c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ MSBuild.exe "d: \ workspace \ 1002 \ Site \ Integration \ Integration.csproj" / target:пакет

Он создает файл Integrations.zip, .deploy, файл .cmd и т. Д. В папке d: \ workspace \ 1002 \ site \ Integration \ obj \ Debug \ Package

Когда я работаю и он не работает, я делаю msbuild ниже.

Путь к MSBuild.exe:C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ msbuild.exe Выполнение команды cmd.exe / C "chcp 1252 & C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ msbuild.exe / t: FullBuild / p: Конфигурация = Выпуск; Платформа = AnyCPU; SourceDir = D: \ workspace \ 1002; DefineConstants = NONE; PatchLoaderSwitches = - неинтерактивно; Package = TRUE; InstallStartTime = 20190222085726 j6.proj "&& exit %% ERRORLEVEL %%из D: \ workspace \ 1002[1002] $ cmd.exe / C "chcp 1252 & C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ msbuild.exe / t: FullBuild / p: конфигурация = выпуск; платформа = AnyCPU; SourceDir = D:\ workspace \ 1002; DefineConstants = NONE; PatchLoaderSwitches = - неинтерактивный; Package = TRUE; InstallStartTime = 20190222085726 j6.proj "&& exit %% ERRORLEVEL %%Активная кодовая страница: 1252Microsoft (R) Build Engine версия 4.7.3062.0[Microsoft .NET Framework, версия 4.0.30319.42000]Авторское право (C) Microsoft Corporation.Все права защищены.

Сборка началась 22.02.2009 8:58:12.Проект "D: \ workspace \ 1002 \ j6.proj" на узле 1 (цели (и) FullBuild).LoadFeatures:Особенности:ядроWebIntegration

1 Ответ

0 голосов
/ 23 февраля 2019

Обнаружено, что файл C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.WEb.Publishing.targets в Live был более поздним, чем файл в Dev.Попробовал файл на Dev, и это сработало.

Не уверен, нужно ли мне копировать больше файлов из этого места или нет.Также предполагается, что было какое-то обновление Windows, которое изменило этот файл, или кто-то вручную скопировал его в Live.

Старый файл датирован 26.06.2012.Новый файл был датирован 19.09.2013.

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