Как создать проект установки из .vdproj в Azure DevOps?

Недавно я обновил некоторые из наших приложений Windows до VS2019 и создал проект установки, используя расширение VSInstallerProject в VS2019. Я заметил, что установка не создается при запуске конвейера выпуска, но мне нужны файлы msi (или exe), чтобы я мог использовать их для установки на сервере приложений.

Я внес изменения в свой конвейер и добавил задачу: «DutchWorkz - Build VS Installer (s)» в конвейер выпуска. Ниже я прикрепил журналы ошибки, которую я получаю при выполнении этой задачи в Azure Devops. Сборка не справляется с этой задачей.

Может ли кто-нибудь объяснить мне, в чем проблема и как ее решить? Кроме того, я хочу создать setup projects / msi в VS2019, но я не вижу параметр Vs2019 в этой задаче, как я могу использовать эту задачу в версии VS2019. У меня Vs2019 установлен на сервере агента.

сервер агента

определение сборки

2020-09-21T20:04:43.3394997Z ##[section]Starting: Create .msi file(s) from VS Installer project(s).
2020-09-21T20:04:43.3539534Z ==============================================================================
2020-09-21T20:04:43.3539958Z Task         : DutchWorkz - Build VS Installer(s)
2020-09-21T20:04:43.3540023Z Description  : Build .msi file(s) from VS Installer project(s).
2020-09-21T20:04:43.3540076Z Version      : 1.2.4
2020-09-21T20:04:43.3540129Z Author       : DutchWorkz B.V.
2020-09-21T20:04:43.3540201Z Help         : <b>BuildVsInstaller v1.2.4</b>, DutchWorkz B.V. (Robin Paardekam)<br/><br/>Visual Studio Installer projects are not supported by MSBUILD, so a regular build will not generate your installer files (.msi). Use this build-task to build the .msi file(s) for your project by running devenv on the buildagent directly. <br/><br/><b>Dependencies:</b><br/>Dep1: when using VisualStudio 2017, this task will only function properly if you installed it in the default C:\Program Files (x86)\ location.
2020-09-21T20:04:43.3540311Z ==============================================================================
2020-09-21T20:05:07.5667900Z DEBUG: Aggregated: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.com
2020-09-21T20:05:07.5714835Z Now running (C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.com) with Arguments ("D:\VSTS Agent Folder\SO\6\s\SOApplications.sln" /Build "release|any cpu" /Project "D:\VSTS Agent Folder\SO\6\s\App_Tool_Installer\App_Tool_Installer.vdproj" /Out "D:\VSTS Agent Folder\SO\6\b\BuildInstaller_Log_20200921200507.txt")
2020-09-21T20:05:15.0213322Z Done running DevEnv process. Success = False.
2020-09-21T20:05:15.0238151Z ##[error]Unable to process command '##vso[task.addattachment type=Distributedtask.Core.Summary;name=Installer project errors;]D:\VSTS Agent Folder\SO\6\b\BuildInstaller_Log_20200921200507.txt' successfully. Please reference documentation (http://go.microsoft.com/fwlink/?LinkId=817296)
2020-09-21T20:05:15.0239574Z ##[error]Cannot upload task attachment file, attachment file location is not specified or attachment file not exist on disk
2020-09-21T20:05:15.1116369Z Attachment added: Log file for Installer generation.
2020-09-21T20:05:15.1928578Z ##[error]An error occurred while running DevEnv! Please review logfile BuildInstaller_Log_20200921200507.txt
2020-09-21T20:05:15.2720322Z ##[section]Finishing: Create .msi file(s) from VS Installer project(s).

Я также пробовал использовать командную строку devenv для создания проекта установки. Я пробовал это как с vs2017 (профессиональный), так и с vs 2019 (корпоративный), и у меня возникают проблемы с обоими. Хотя проблема с 2017 годом связана с лицензией, я Я не могу понять, что вызывает проблему на 2019 год. Пожалуйста, дайте мне знать, если у вас есть какие-либо мысли о том, что могло вызвать эту проблему и как ее можно решить. Задача состоит в том, чтобы создать проект установки с конвейером azure DevOps и использовать сгенерированный файл msi для установки на сервере приложений. Заранее спасибо .

Вот скриншот для новой сборки и выпуска:  new build def < img src = "https://i.stack.imgur.com/dYeFO.png" alt = "проблема с 2019" />  проблема с 2017

На сервере агента сборки уже установлен установщик Vs, пожалуйста, проверьте, все ли в порядке:  vsinstaller

Пожалуйста, проверьте новые журналы из «задачи командной строки» ниже:

2020-09-26T16:04:39.7854210Z ##[debug]Evaluating condition for step: 'Command Line Script'
2020-09-26T16:04:39.7856182Z ##[debug]Evaluating: succeeded()
2020-09-26T16:04:39.7856654Z ##[debug]Evaluating succeeded:
2020-09-26T16:04:39.7857594Z ##[debug]=> True
2020-09-26T16:04:39.7858101Z ##[debug]Result: True
2020-09-26T16:04:39.7858600Z ##[section]Starting: Command Line Script
2020-09-26T16:04:39.8082090Z ==============================================================================
2020-09-26T16:04:39.8082357Z Task         : Command line
2020-09-26T16:04:39.8082602Z Description  : Run a command line script using Bash on Linux and macOS and cmd.exe on Windows
2020-09-26T16:04:39.8082847Z Version      : 2.164.2
2020-09-26T16:04:39.8083025Z Author       : Microsoft Corporation
2020-09-26T16:04:39.8083274Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/command-line
2020-09-26T16:04:39.8084133Z ==============================================================================
2020-09-26T16:04:39.8097829Z ##[debug]tf vc resolvePath $\CDM\Dev /loginType:OAuth /login:.,*** /noprompt
2020-09-26T16:04:40.1991127Z ##[debug]D:\VSTSAgent\sn\30\s
2020-09-26T16:04:41.0198149Z ##[debug]VstsTaskSdk 0.9.0 commit 6c48b16164b9a1c9548776ad2062dad5cd543352
2020-09-26T16:04:41.1044331Z ##[debug]Entering D:\VSTSAgent\sn\_tasks\CmdLine_d9bafed4-0b18-4f58-968d-86655b4d2ce9\2.164.2\cmdline.ps1.
2020-09-26T16:04:41.1126277Z ##[debug]Loading resource strings from: D:\VSTSAgent\sn\_tasks\CmdLine_d9bafed4-0b18-4f58-968d-86655b4d2ce9\2.164.2\task.json
2020-09-26T16:04:41.1272687Z ##[debug]Loaded 6 strings.
2020-09-26T16:04:41.1306950Z ##[debug]SYSTEM_CULTURE: 'en-US'
2020-09-26T16:04:41.1325343Z ##[debug]Loading resource strings from: D:\VSTSAgent\sn\_tasks\CmdLine_d9bafed4-0b18-4f58-968d-86655b4d2ce9\2.164.2\Strings\resources.resjson\en-US\resources.resjson
2020-09-26T16:04:41.1467074Z ##[debug]Loaded 6 strings.
2020-09-26T16:04:41.1670941Z ##[debug]INPUT_FAILONSTDERR: 'false'
2020-09-26T16:04:41.1696717Z ##[debug] Converted to bool: False
2020-09-26T16:04:41.1718695Z ##[debug]INPUT_SCRIPT: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\devenv" "D:\VSTSAgent\sn\30\s\st.sn.ComponentManagement.sln" /build release'
2020-09-26T16:04:41.1739155Z ##[debug]INPUT_WORKINGDIRECTORY: 'D:\VSTSAgent\sn\30\s'
2020-09-26T16:04:41.1861366Z ##[debug]Asserting container path exists: 'D:\VSTSAgent\sn\30\s'
2020-09-26T16:04:41.1900763Z Generating script.
2020-09-26T16:04:41.1963727Z Script contents:
2020-09-26T16:04:41.1969048Z "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\devenv" "D:\VSTSAgent\sn\30\s\st.sn.ComponentManagement.sln" /build release
2020-09-26T16:04:41.2078510Z ##[debug]AGENT_VERSION: '2.173.0'
2020-09-26T16:04:41.2148233Z ##[debug]AGENT_TEMPDIRECTORY: 'D:\VSTSAgent\sn\_temp'
2020-09-26T16:04:41.2166134Z ##[debug]Asserting container path exists: 'D:\VSTSAgent\sn\_temp'
2020-09-26T16:04:41.2329780Z ##[debug]Asserting leaf path exists: 'C:\Windows\system32\cmd.exe'
2020-09-26T16:04:41.2337995Z ========================== Starting Command Output ===========================
2020-09-26T16:04:41.2446509Z ##[debug]Entering Invoke-VstsTool.
2020-09-26T16:04:41.2539207Z ##[debug] Arguments: '/D /E:ON /V:OFF /S /C "CALL "D:\VSTSAgent\sn\_temp\442cb1cb-a43b-4d2a-b036-4f16ab588410.cmd""'
2020-09-26T16:04:41.2553937Z ##[debug] FileName: 'C:\Windows\system32\cmd.exe'
2020-09-26T16:04:41.2568488Z ##[debug] WorkingDirectory: 'D:\VSTSAgent\sn\30\s'
2020-09-26T16:04:41.2608339Z ##[command]"C:\Windows\system32\cmd.exe" /D /E:ON /V:OFF /S /C "CALL "D:\VSTSAgent\sn\_temp\442cb1cb-a43b-4d2a-b036-4f16ab588410.cmd""
2020-09-26T16:04:47.9474432Z 
2020-09-26T16:04:47.9514773Z Microsoft Visual Studio 2019 Version 16.7.3.
2020-09-26T16:04:47.9656002Z Copyright (C) Microsoft Corp. All rights reserved.
2020-09-26T16:04:47.9656269Z 
2020-09-26T16:04:47.9656416Z The license for Visual Studio expires in 19 days.
2020-09-26T16:04:47.9656554Z 
2020-09-26T16:04:47.9657872Z Some errors occurred during migration. For more information, see the migration report:
2020-09-26T16:04:47.9658144Z D:\VSTSAgent\sn\30\s\UpgradeLog2.htm
2020-09-26T16:04:50.0902169Z 1>------ Build started: Project: st.sn.ComponentManagement, Configuration: Release x86 ------
2020-09-26T16:04:52.8763939Z ========== Build: 1 succeeded, 0 failed, 6 up-to-date, 0 skipped ==========
2020-09-26T16:04:53.4375608Z ##[debug]Exit code: 0
2020-09-26T16:04:53.4417000Z ##[debug]Leaving Invoke-VstsTool.
2020-09-26T16:04:53.4426510Z ##[debug]Leaving D:\VSTSAgent\sn\_tasks\CmdLine_d9bafed4-0b18-4f58-968d-86655b4d2ce9\2.164.2\cmdline.ps1.
2020-09-26T16:04:53.5245394Z ##[section]Finishing: Command Line Script

Вот дополнительный журнал ошибок:

дополнительный журнал

ДАЖЕ несмотря на то, что задача командной строки была выполнена, проект установки .vdproj не был обновлен или собран. Я вижу, что по метке времени все остальные проекты обновляются как обычно.


person Rehan Haque    schedule 21.09.2020    source источник


Ответы (2)


Я нашел похожий билет, к которому вы можете обратиться.

Настройте собственный агент и убедитесь, что расширение VS Installer Projects установлено на вашем собственном агенте сборки, а затем вы можете построить проект установки либо с помощью задачи командной строки с devenv, либо с помощью задачи Build VS Installer.

Если вы получаете сообщение об ошибке типа 8000000A, вы можете следовать приведенным здесь инструкциям, чтобы настроить свой собственный агент: Решение: При проверке произошла ошибка. HRESULT = '8000000A'.

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

Обновление1

Мы можем установить расширение Build VS Installer и использовать задачу DutchWorkz - Build VS Installer(s) для создания Visual Проект установщика Studio в Azure Pipelines.

введите описание изображения здесь

person Vito Liu    schedule 22.09.2020
comment
Привет, Вито, спасибо за ваш комментарий. Я также попытался использовать команду devenv, указанную в ссылке, которой вы поделились. Я пробовал это с Vs 2017 (профессиональный) и 2019 (корпоративный), присутствующими на моем сервере агента сборки. Хотя при использовании 2017 года произошла ошибка, связанная с лицензией, я не понял, что вызвало проблему при использовании 2019. Я обновил исходный пост с подробностями. Пожалуйста, дайте мне знать, что может вызвать такую ​​проблему. Заранее спасибо - person Rehan Haque; 22.09.2020
comment
Привет @RehanHaque! Не могли бы вы запустить cmd на локальном компьютере и поделиться результатом? Кроме того, я не могу воспроизвести эту проблему со своей стороны, установите для переменной system.debug значение true и поделитесь полным журналом здесь, я проверю его и помогу вам. Спасибо - person Vito Liu; 25.09.2020
comment
Привет, когда я запустил сборку с отладкой true, я понял, что не получил путь .sln, поэтому я добавил полный путь, и задача больше не терпит неудачу (здесь используется vs2019). Но когда я проверил сервер агента сборки, я все еще не увидел, что проект установки получает сборку, в то время как другие проекты обновляются (что происходит даже без команды devenv, что происходит с задачей сборки). Я прикрепил новые журналы, снимок экрана с сервера агента сборки. Пожалуйста, проверьте и отмените свои комментарии. Спасибо ! - person Rehan Haque; 26.09.2020
comment
Привет, @RehanHaque, извини, что ответил тебе так поздно. Пожалуйста, проверьте update1 и поделитесь результатом здесь. - person Vito Liu; 08.10.2020

Я просмотрел упомянутый вами пакет в этом месте - https://marketplace.visualstudio.com/items?itemName=dutchworkz.BuildInstaller&ssr=false#review-details

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

В то же время, как уже упоминали пользователи, вы можете увидеть установщик msi и использовать его. Итак, вы (я предполагаю) получаете то, что вам нужно, установщик.

Мое лучшее предложение: поскольку вы получаете то, что вам нужно, игнорируйте ошибку и подождите, пока разработчик исправит эту проблему. А пока вы или кто-либо другой ничего не можете с этим поделать.

Примечание: я также заметил, что если вы используете конфигурацию по умолчанию в процессе сборки для простых проектов, она работает нормально. Ваш проект и сборка могут иметь некоторые настройки, в которых другие пользователи сообщали об ошибках.

person Jay    schedule 22.09.2020
comment
Спасибо, Джей, я думаю, они еще не выпустили версию для VS2019. Ошибка, о которой я упоминал, возникает, когда я использую ее в настройках VS2017. Мне нужно, чтобы файлы msi были сгенерированы вместе со сборкой, чтобы я мог использовать их для установки приложения на сервере приложений, но в настоящее время они не создаются. Все, что я вижу в проекте установки, - это файл .vdproj. Так что сейчас для меня это большая проблема. - person Rehan Haque; 22.09.2020
comment
Видите, вот в чем дело. вы используете стороннее расширение. На него около 30 отзывов, так что, возможно, он не очень популярен. Лучшим вариантом будет связаться с разработчиком, но это бесплатное расширение, поэтому не уверен в быстрой поддержке. Или попробуйте другой метод. В крайнем случае, вам, возможно, придется сделать эту часть вручную из самой Visual Studio. Я ставлю себя на ваше место и пытаюсь представить, что бы я попробовал. - person Jay; 22.09.2020
comment
Теперь я делаю то же самое, создавая установку с локального компьютера. Но я думаю, что в будущем мне определенно понадобится, чтобы это произошло с самим конвейером. Любой другой способ сгенерировать файлы msi из .vdproj из конвейера Azure? - person Rehan Haque; 22.09.2020
comment
насколько я понимаю, в Azure DevOps акцент сместился на msix, новый формат упаковки. Вы используете старую версию, которая, честно говоря, нет, я не думаю, что вы найдете много деталей, кроме расширения, подобного тому, которое вы уже используете. в конечном счете, лучшим вариантом будет создание расширения, такого как код, для этого самостоятельно. DevOps имеет много преимуществ, но вы, по сути, делаете что-то унаследованное. - person Jay; 22.09.2020
comment
Итак, если вы сможете перейти на msix, я думаю, ваш путь станет немного проще. но вы женаты на MSI по рабочим или личным причинам, тогда, извините, впереди вас ждет трудный одиночный путь. - person Jay; 22.09.2020
comment
Похоже, что Dutchworz снял это с рынка. Это больше не вариант. - person Joe Kampf; 14.06.2021