Как развернуть веб-приложение из Azure DevOps для хостинговой компании так же, как в VS Publish - PullRequest
0 голосов
/ 18 апреля 2020

Есть ли способ опубликовать sh веб-приложение в хостинговой компании, в моем случае GoDaddy, используя заданную задачу c для имитации c функциональности 'Publi sh', предоставляемой в Visual Studio?

Я выяснил, как построить свое решение, создать артефакт и запустить конвейер релиза, но мне все еще нужно нажать кнопку «Развернуть» в DevOps, чтобы создать новый релиз. Я хочу автоматизировать эту часть, так как я не хочу каждый раз вручную загружать zip-файлы и различные другие файлы и вручную обновлять это через FTP или использовать Publi sh через VS, поскольку я пытаюсь полностью автоматизировать напрямую с Azure DevOps, так что каждый раз, когда сборка происходит после утверждения PR, она автоматически развертывает мою новую сборку на GoDaddy, и я получаю полное решение CI / CD, но я не уверен, что делать дальше? Я прочитал так много разных статей и / или документации от Microsoft, но я не понимаю, как опубликовать sh так же, как VS.

Вот лишь несколько из тех, что я прочитал:

  • Azure DevOps: развертывание с использованием веб-развертывания: этот документ частично объясняет, что мне нужно, но, похоже, полагается на WinRM, установленном на веб-сервере, который не является решением, поскольку маловероятно, что GoDaddy установит его.

  • Создание конвейера CI / CD для. NET с помощью Azure Проект DevOps : Похоже, что это развертывание из DevOps на веб-сайте Azure, который мне не нужен.

  • Задача копирования файла Я не думаю, что это то, что я хочу, так как кажется, что я просто копирую файлы на другой azure аппарат.

  • Задача загрузки по FTP Я не уверен это решение, так как он просто копирует файлы, но при публикации из VS я вижу, что он d

При использовании Publi sh из VS он устанавливает ACL, очищает папку, если необходимо скопировать соответствующие файлы и т. д. c ... Как я могу выполнить то же самое, но в автоматическом режиме и для сторонней хостинговой компании? * 10 31 *

Обновление-1:

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

И хотя я думал, что это потенциально решит мою проблему, я не получаю сообщение об ошибке, связанное с паролем, но теперь я получаю следующую ошибку:

2020-04-19T00:51:48.1263705Z MSBUILD : error MSB1001: Unknown switch.
2020-04-19T00:51:48.1268014Z Switch: -
2020-04-19T00:51:48.1268368Z 
2020-04-19T00:51:48.1268737Z For switch syntax, type "MSBuild -help"
2020-04-19T00:51:48.1311517Z ##[debug]Exit code: 1
2020-04-19T00:51:48.1408662Z ##[debug]Error record:
2020-04-19T00:51:48.2163916Z ##[debug]Invoke-VstsTool : Process 'msbuild.exe' exited with code '1'.
2020-04-19T00:51:48.2179821Z ##[debug]At D:\a\_tasks\MSBuild_c6c4c611-aa2e-4a33-b606-5eaba2196824\1.166.0\ps_modules\MSBuildHelpers\InvokeFunctions.ps1:118 char:13
2020-04-19T00:51:48.2192266Z ##[debug]+             Invoke-VstsTool -FileName $MSBuildPath -Arguments $argume ...
2020-04-19T00:51:48.2204740Z ##[debug]+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-04-19T00:51:48.2217284Z ##[debug]    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
2020-04-19T00:51:48.2229916Z ##[debug]    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Invoke-VstsTool
2020-04-19T00:51:48.2242305Z ##[debug] 
2020-04-19T00:51:48.2262848Z ##[debug]Script stack trace:
2020-04-19T00:51:48.2304606Z ##[debug]at Invoke-Tool, D:\a\_tasks\MSBuild_c6c4c611-aa2e-4a33-b606-5eaba2196824\1.166.0\ps_modules\VstsTaskSdk\ToolFunctions.ps1: line 86
2020-04-19T00:51:48.2317108Z ##[debug]at Invoke-MSBuild, D:\a\_tasks\MSBuild_c6c4c611-aa2e-4a33-b606-5eaba2196824\1.166.0\ps_modules\MSBuildHelpers\InvokeFunctions.ps1: line 118
2020-04-19T00:51:48.2330364Z ##[debug]at Invoke-BuildTools, D:\a\_tasks\MSBuild_c6c4c611-aa2e-4a33-b606-5eaba2196824\1.166.0\ps_modules\MSBuildHelpers\InvokeFunctions.ps1: line 41
2020-04-19T00:51:48.2345010Z ##[debug]at <ScriptBlock>, D:\a\_tasks\MSBuild_c6c4c611-aa2e-4a33-b606-5eaba2196824\1.166.0\MSBuild.ps1: line 47
2020-04-19T00:51:48.2850001Z ##[debug]at <ScriptBlock>, <No file>: line 1
2020-04-19T00:51:48.2862510Z ##[debug]at <ScriptBlock>, <No file>: line 22
2020-04-19T00:51:48.2874567Z ##[debug]at <ScriptBlock>, <No file>: line 18
2020-04-19T00:51:48.2886379Z ##[debug]at <ScriptBlock>, <No file>: line 1
2020-04-19T00:51:48.2906188Z ##[debug]Exception:
2020-04-19T00:51:48.2948894Z ##[debug]Microsoft.PowerShell.Commands.WriteErrorException: Process 'msbuild.exe' exited with code '1'.
2020-04-19T00:51:48.3206062Z ##[error]Process 'msbuild.exe' exited with code '1'.
2020-04-19T00:51:48.3216191Z ##[debug]Processed: ##vso[task.logissue type=error]Process 'msbuild.exe' exited with code '1'.
2020-04-19T00:51:48.3216963Z ##[debug]Leaving Invoke-VstsTool.
2020-04-19T00:51:48.3260299Z ##[debug]Processed: ##vso[task.complete result=Failed]

Я использовал задачу ниже со следующими msbuildarguments, как предложено в 2 статьях, упомянутых выше:

# - task: MSBuild@1
#   inputs:
#     solution: '$(solution)'
#     msbuildArguments: '/p:DeployOnBuild=true /p:SkipInvalidConfigurations=true 
      /p:OutputPath=Bin /p:PublishProfile=mypublishingprofile.pubxml'
#     platform: '$(buildPlatform)'
#     configuration: '$(buildConfiguration)'

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

Обновление-2:

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

2020-04-25T01:47:01.5844252Z ValidatePublishProfileSettings:
2020-04-25T01:47:01.5844739Z   Validating PublishProfile(mycompany.com - GoDaddy.pubxml) settings.
2020-04-25T01:47:01.6199447Z ##[debug]Processed: ##vso[task.logdetail id=5a6e1dcf-15b4-407c-875b-a6be615852b3;parentid=;name=Microsoft.Web.Publishing.targets;type=Build;starttime=
2020-04-25T01:47:01.6090560Z;state=InProgress;]
2020-04-25T01:47:01.6207790Z ##[error]C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\Web\Microsoft.Web.Publishing.targets(4360,5): Error : The value for PublishProfile is set to 'mycompany.com - GoDaddy.pubxml', expected to find the file at 'd:\a\1\s\Repos\Work\MyCompany\MySolution\MyProject\Properties\PublishProfiles\MyCompany.com - GoDaddy.pubxml' but it could not be found.
2020-04-25T01:47:01.6210637Z ##[debug]Processed: ##vso[task.logissue type=Error;sourcepath=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\Web\Microsoft.Web.Publishing.targets;linenumber=4360;columnnumber=5;code=;]The value for PublishProfile is set to 'MyCompany.com - GoDaddy.pubxml', expected to find the file at 'd:\a\1\s\Repos\Work\MyCompany\MySolution\MyProject\Properties\PublishProfiles\MyProject.com - GoDaddy.pubxml' but it could not be found.
2020-04-25T01:47:01.6225151Z ##[debug]Processed: ##vso[task.logdetail id=5a6e1dcf-15b4-407c-875b-a6be615852b3;parentid=;type=Build;result=Failed;finishtime=2020-04-25T01:47:01.6090560Z;progress=100;state=Completed;parentid=;name=;]
2020-04-25T01:47:01.6234468Z C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\Web\Microsoft.Web.Publishing.targets(4360,5): error : The value for PublishProfile is set to 'MyCompany.com - GoDaddy.pubxml', expected to find the file at 'd:\a\1\s\Repos\Work\MyCompany\MySolition\MyProject\Properties\PublishProfiles\MyCompany.com - GoDaddy.pubxml' but it could not be found. [d:\a\1\s\Repos\Work\MyCompany\MySolution\MyProject\MyProject.csproj]
2020-04-25T01:47:01.6243383Z ##[error]C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\Web\Microsoft.Web.Publishing.targets(4367,4): Error : PublishProfile(MyCompany.com - GoDaddy.pubxml) is set. But the $(WebPublishMethod) does not have a valid value.  Current Value is "".
2020-04-25T01:47:01.6245673Z ##[debug]Processed: ##vso[task.logissue type=Error;sourcepath=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\Web\Microsoft.Web.Publishing.targets;linenumber=4367;columnnumber=4;code=;]PublishProfile(MyCompany.com - GoDaddy.pubxml) is set. But the $(WebPublishMethod) does not have a valid value.  Current Value is "".
2020-04-25T01:47:01.6257900Z C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\Web\Microsoft.Web.Publishing.targets(4367,4): error : PublishProfile(MyCompany.com - GoDaddy.pubxml) is set. But the $(WebPublishMethod) does not have a valid value.  Current Value is "". [d:\a\1\s\Repos\Work\MyCompany\MySolution\MyProject\MyProject.csproj]
2020-04-25T01:47:01.6263963Z ##[error]C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\Web\Microsoft.Web.Publishing.targets(4374,5): Error : Target ValidatePublishProfileSettings Failed
2020-04-25T01:47:01.6265705Z ##[debug]Processed: ##vso[task.logissue type=Error;sourcepath=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\Web\Microsoft.Web.Publishing.targets;linenumber=4374;columnnumber=5;code=;]Target ValidatePublishProfileSettings Failed
2020-04-25T01:47:01.6272385Z C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\Web\Microsoft.Web.Publishing.targets(4374,5): error : Target ValidatePublishProfileSettings Failed [d:\a\1\s\Repos\Work\MyCompany\MySolution\MyProject\MyProject.csproj]
2020-04-25T01:47:01.7143832Z Done Building Project "d:\a\1\s\Repos\Work\MyCompany\MySolution\MyProject\MyProject.csproj" (default targets) -- FAILED.
2020-04-25T01:47:01.7155809Z Done Building Project "d:\a\1\s\Repos\Work\MyCompany\MySolution\JoiffListing.sln" (default targets) -- FAILED.
2020-04-25T01:47:01.7183733Z 
2020-04-25T01:47:01.7184826Z Build FAILED.

Из вышеприведенной ошибки похоже, что мой '.pub xml' не является при извлечении, а также ошибка, связанная с неправильной настройкой WebPublishMethod.

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

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