Есть ли способ опубликовать 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
.
Я продолжу исследовать это обновление, когда найду что-нибудь, но пока, если у вас есть какие-либо предложения, пожалуйста, дайте мне знать.