#arguments Azure devops msbuild arguments
Explore tagged Tumblr posts
Text
Azure devops msbuild arguments
Azure devops msbuild arguments
Azure devops msbuild arguments Azure devops msbuild arguments National news in english Azure devops msbuild arguments PowerShell parameters in the Azure DevOps pipelines Build and release pipelines in the Azure DevOps can have complex structure. Sometimes there is a need to add PowerShell as one of the steps in these pipelines. Why? For instance to update content of the files from the…

View On WordPress
0 notes
Text
Deploying a MSDeploy-packaged Web application to a Linux Azure App Service with Azure DevOps
For bizarre and unknown historical reasons, when using MSDeploy to make a ZIP package to upload a website to a web server you get a massively deep silly path like yada/yada/C_C/Temp/package/WebApplication1/obj/Release/Package/PackageTmp. I use .NET Core so I usually do a "dotnet publish" and get a sane path for my build artifacts in my CI/CD (Continues Integration/Continuous Deployment) pipeline.
I'm using the original pipeline editor on free Azure DevOps (I'm still learning DevOps YAML for this, and this visual pipeline editor IMHO is more friendly for getting started.
However, I'm using a "Visual Studio Build" task which is using MSDeploy and these MSBuild arguments.
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"
Later on in the process I'm taking this package/artifact - now named "drop.zip" and I'm publishing it to Azure App Service.
I'm using the "Azure App Service Deploy" task in the DevOps release pipeline and it works great when publishing to a Windows Azure App Service Plan. Presumably because it's using, again, MSDeploy and it knows about these folders.
However, I wanted to also deploy to a Linux Azure App Service. Recently there was a massive (near 35%) price drop for Premium App Services. I'm running an S1 and I can move to a P1V2 and get double the memory, move to SSDs, and get double the perf for basically the same money. I may even be able to take TWO of my S1s and pack all my websites (19 at this point) into just one Premium. It'll be faster and way cheaper.
Trick is, I'll need to move my Windows web apps to Linux web app. That's cool, since I'm using .NET Core - in my case 2.1 and 2.2 - then I'll just republish. I decided to take my existing Azure DevOps release pipeline and just add a second task to publish to Linux for testing. If it works I'll just disable the Windows one. No need to rebuild the whole pipeline from scratch.
Unfortunately the Linux Azure App Service has its deployment managed as a straight ZIP deployment; it was ending up with a TON of nested folders from MSDeploy!
NOTE: If I'm giving bad advice or I am missing something obvious, please let me know in the comments! Perhaps there's a "this zip file has a totally bonkers directory structure, fix it for Linux" checkbox that I missed?
I could redo the whole build pipeline and build differently, but I'd be changing two variables and it already works today on Windows.
I could make another build pipeline for Linux and build differently, but that sounds tedious and again, a second variable. I have a build artifact now, it's just in a weird structure.
How did I know the build artifact had a weird folder structure? I remember that I could just download any build artifact and look at it! Seems obvious when you say it but it's a good reminder that all these magical black box processes that move data from folder to folder are not black boxes - you can always check the result of a step. The output of one step becomes the input to the next.
I should probably have a Windows Build and Linux Build (two separate build agents) but the site isn't complex enough and it doesn't do anything that isn't clearly cross-platform friendly.
Anthony Chu suggested that I just remove the folders by restructuring the zip file (unzipping/zipping it). Could be a simple way to get both Windows and Linux publishing from a single artifact. I can fix it all up with a fresh build and release pipeline another time when I have the energy to learn this YAML format. (Speaking of the Azure DevOps YAML which doesn't have a friendly editor or validator, not speaking of YAML as a generic concept)
I unzip the weird folder structure, then zip it back up from a new root. It then cleanly deploys to the Linux Azure App Service from the same artifact I made built for the Windows App Service.
Ironically here's a YAML view of the tasks, although I build them with the visual editor.
steps: - task: ExtractFiles@1 displayName: 'Extract files - MSDeploy Crap' inputs: destinationFolder: linuxdrop steps: - task: ArchiveFiles@2 displayName: 'Archive linuxdrop/Content/D_C/a/1/s/hanselminutes.core/obj/Release/netcoreapp2.2/PubTmp/Out' inputs: rootFolderOrFile: 'linuxdrop/Content/D_C/a/1/s/hanselminutes.core/obj/Release/netcoreapp2.2/PubTmp/Out' includeRootFolder: false steps: - task: AzureRmWebAppDeployment@4 displayName: 'Azure App Service Deploy: hanselminutes-core-linux' inputs: azureSubscription: 'Azure MSDN)' appType: webAppLinux WebAppName: 'hanselminutes-linux' packageForLinux: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip' RuntimeStack: 'DOTNETCORE|2.2'
Just to be clear, this isn't standard and it's a pretty rare edge case and it may not work for everyone but isn't it nice to google for a super rare edge case and instead of feeling all alone you find an answer?
Sponsor: Looking for a tool for performance profiling, unit test coverage, and continuous testing that works cross-platform on Windows, macOS, and Linux? Check out the latest JetBrains Rider!
© 2019 Scott Hanselman. All rights reserved.
Deploying a MSDeploy-packaged Web application to a Linux Azure App Service with Azure DevOps published first on http://7elementswd.tumblr.com/
0 notes
Text
Deploying a MSDeploy-packaged Web application to a Linux Azure App Service with Azure DevOps
For bizarre and unknown historical reasons, when using MSDeploy to make a ZIP package to upload a website to a web server you get a massively deep silly path like yada/yada/C_C/Temp/package/WebApplication1/obj/Release/Package/PackageTmp. I use .NET Core so I usually do a "dotnet publish" and get a sane path for my build artifacts in my CI/CD (Continues Integration/Continuous Deployment) pipeline.
I'm using the original pipeline editor on free Azure DevOps (I'm still learning DevOps YAML for this, and this visual pipeline editor IMHO is more friendly for getting started.
However, I'm using a "Visual Studio Build" task which is using MSDeploy and these MSBuild arguments.
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"
Later on in the process I'm taking this package/artifact - now named "drop.zip" and I'm publishing it to Azure App Service.
I'm using the "Azure App Service Deploy" task in the DevOps release pipeline and it works great when publishing to a Windows Azure App Service Plan. Presumably because it's using, again, MSDeploy and it knows about these folders.
However, I wanted to also deploy to a Linux Azure App Service. Recently there was a massive (near 35%) price drop for Premium App Services. I'm running an S1 and I can move to a P1V2 and get double the memory, move to SSDs, and get double the perf for basically the same money. I may even be able to take TWO of my S1s and pack all my websites (19 at this point) into just one Premium. It'll be faster and way cheaper.
Trick is, I'll need to move my Windows web apps to Linux web app. That's cool, since I'm using .NET Core - in my case 2.1 and 2.2 - then I'll just republish. I decided to take my existing Azure DevOps release pipeline and just add a second task to publish to Linux for testing. If it works I'll just disable the Windows one. No need to rebuild the whole pipeline from scratch.
Unfortunately the Linux Azure App Service has its deployment managed as a straight ZIP deployment; it was ending up with a TON of nested folders from MSDeploy!
NOTE: If I'm giving bad advice or I am missing something obvious, please let me know in the comments! Perhaps there's a "this zip file has a totally bonkers directory structure, fix it for Linux" checkbox that I missed?
I could redo the whole build pipeline and build differently, but I'd be changing two variables and it already works today on Windows.
I could make another build pipeline for Linux and build differently, but that sounds tedious and again, a second variable. I have a build artifact now, it's just in a weird structure.
How did I know the build artifact had a weird folder structure? I remember that I could just download any build artifact and look at it! Seems obvious when you say it but it's a good reminder that all these magical black box processes that move data from folder to folder are not black boxes - you can always check the result of a step. The output of one step becomes the input to the next.
I should probably have a Windows Build and Linux Build (two separate build agents) but the site isn't complex enough and it doesn't do anything that isn't clearly cross-platform friendly.
Anthony Chu suggested that I just remove the folders by restructuring the zip file (unzipping/zipping it). Could be a simple way to get both Windows and Linux publishing from a single artifact. I can fix it all up with a fresh build and release pipeline another time when I have the energy to learn this YAML format. (Speaking of the Azure DevOps YAML which doesn't have a friendly editor or validator, not speaking of YAML as a generic concept)
I unzip the weird folder structure, then zip it back up from a new root. It then cleanly deploys to the Linux Azure App Service from the same artifact I made built for the Windows App Service.
Ironically here's a YAML view of the tasks, although I build them with the visual editor.
steps: - task: ExtractFiles@1 displayName: 'Extract files - MSDeploy Crap' inputs: destinationFolder: linuxdrop steps: - task: ArchiveFiles@2 displayName: 'Archive linuxdrop/Content/D_C/a/1/s/hanselminutes.core/obj/Release/netcoreapp2.2/PubTmp/Out' inputs: rootFolderOrFile: 'linuxdrop/Content/D_C/a/1/s/hanselminutes.core/obj/Release/netcoreapp2.2/PubTmp/Out' includeRootFolder: false steps: - task: AzureRmWebAppDeployment@4 displayName: 'Azure App Service Deploy: hanselminutes-core-linux' inputs: azureSubscription: 'Azure MSDN)' appType: webAppLinux WebAppName: 'hanselminutes-linux' packageForLinux: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip' RuntimeStack: 'DOTNETCORE|2.2'
Just to be clear, this isn't standard and it's a pretty rare edge case and it may not work for everyone but isn't it nice to google for a super rare edge case and instead of feeling all alone you find an answer?
Sponsor: Looking for a tool for performance profiling, unit test coverage, and continuous testing that works cross-platform on Windows, macOS, and Linux? Check out the latest JetBrains Rider!
© 2019 Scott Hanselman. All rights reserved.
Deploying a MSDeploy-packaged Web application to a Linux Azure App Service with Azure DevOps published first on https://deskbysnafu.tumblr.com/
0 notes
Text
Azure devops msbuild arguments
Azure devops msbuild arguments
Azure devops msbuild arguments Azure devops msbuild arguments Current news stories Azure devops msbuild arguments msbuild arguments azure devops (Required) If you want to build a single project, click the . button and select the project. You can view your pipeline logs by selecting the appropriate task and job in your pipeline run summary. The nuget.config file provides NuGet with the source…

View On WordPress
0 notes
Text
Azure devops msbuild arguments
Azure devops msbuild arguments
Azure devops msbuild arguments Azure devops msbuild arguments Current national news Azure devops msbuild arguments Azure DevOps Plan smarter, collaborate better, and ship faster with a set of modern dev services. Already have an account? Azure Boards Deliver value to your users faster using proven agile tools to plan, track, and discuss work across your teams. Azure Pipelines Build, test, and…

View On WordPress
0 notes
Text
Azure devops msbuild arguments
Azure devops msbuild arguments
Azure devops msbuild arguments Azure devops msbuild arguments Latest world news Azure devops msbuild arguments Dotfuscator Community Build Task PreEmptive Solutions Protect your Applications with Dotfuscator Community The Dotfuscator Community extension adds tasks to your Azure DevOps build process that help you protect your applications from unauthorized decompilation, tampering, debugging, and…

View On WordPress
0 notes
Text
Msbuild arguments azure devops
Msbuild arguments azure devops
Msbuild arguments azure devops Msbuild arguments azure devops Top headlines Msbuild arguments azure devops Configuring a Build Pipeline on Azure DevOps for an ASP.NET Core API Joao Grassi — a .NET developer, front-end hobbyist, and friend of Sentry — likes .NET very much and recently tried to bring a friend to the “dark side” of .NET development. To win a point, he decided to create a small…

View On WordPress
0 notes
Text
Msbuild arguments azure devops
Msbuild arguments azure devops
Msbuild arguments azure devops Msbuild arguments azure devops Recent news Msbuild arguments azure devops Msbuild arguments azure devops I recently started using Coverlet for code coverage in some projects, the projects are all hosted on GitHub or Azure DevOps and build using MSBuild and Azure Pipelines. In this post I will describe how I’m using it. What is Coverlet Coverlet is a cross platform…

View On WordPress
0 notes
Text
Msbuild arguments azure devops
Msbuild arguments azure devops
Msbuild arguments azure devops Msbuild arguments azure devops Latest national news in english Msbuild arguments azure devops Msbuild arguments azure devops Answered by: Question I have raised this originally in the TFS support forums (with the same title) but was directed to this forum as a more appropriate one. I have an ASP.NET MVC application published to Azure Web APP from VS2013 using a…

View On WordPress
0 notes
Text
Msbuild arguments azure devops
Msbuild arguments azure devops
Msbuild arguments azure devops Msbuild arguments azure devops World news Msbuild arguments azure devops Configuring a Build Pipeline on Azure DevOps for an ASP.NET Core API Joao Grassi — a .NET developer, front-end hobbyist, and friend of Sentry — likes .NET very much and recently tried to bring a friend to the “dark side” of .NET development. To win a point, he decided to create a small sample…

View On WordPress
0 notes
Text
Msbuild arguments azure devops
Msbuild arguments azure devops
Msbuild arguments azure devops Msbuild arguments azure devops New Msbuild arguments azure devops Dotfuscator Community Build Task PreEmptive Solutions Protect your Applications with Dotfuscator Community The Dotfuscator Community extension adds tasks to your Azure DevOps build process that help you protect your applications from unauthorized decompilation, tampering, debugging, and data…

View On WordPress
0 notes
Text
Azure devops msbuild arguments
Azure devops msbuild arguments
Azure devops msbuild arguments Azure devops msbuild arguments Latest current news Azure devops msbuild arguments Using Azure DevOps to Build and Deploy Multiple PCF Controls There are plenty of great articles that show how to use Azure DevOps or GitHub Actions to build and pack a PCF control into a deployable solution. In this post, I wanted to expand on this concept and cover the scenario that…

View On WordPress
0 notes