I am working with an older code and attempting to build an ASP.NET website (no .csproj files).
I've created an pipeline for ASP.NET added some tasks to my .yml:
# ASP.NET
# Build and test ASP.NET projects.
# Add steps that publish symbols, save build artifacts, deploy, and more:
# https://learn.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Pipeline.Workspace)'
artifact: 'drop'
publishLocation: 'pipeline'
However, when I run the pipeline, it fails on the VSBuild task:
The problem appears to be on line 18 where the -p ..\BOMViewer\
is specifying a directory that doesn't exist.
I may need to follow DJ Grossman's solution later: Can Azure DevOps Pipelines build an ASP.NET Web Site?
But for now, how can I specify -p \BOMViewer
instead of the above?
*Update I changed solution to .publishproj from .sln in my YAML per @YashGupta suggestion. But VSBuild doesn't like the change:
Final
My .gitignore was ignoring the .publishproj file. Changed that and it worked like charm, per @YashGupta's answer below.
As per my understanding, for an ASP.NET Website you should be using website.publishproj
file instead of the .sln
file to build it. Because Website projects are actually published, and not built (and that's why the .publishproj
files in this case work similar to .csproj
files).
Try modifying the value of your $solution
variable to **\*.publishproj
instead of **\*.sln
.