I am having trouble understanding the different output behavior between a MSBuild@1 task vs a VSBuild@1 task for a project (not a solution) for the web.config generated file.
with an assembly name of RTE.Technologies.SafeProtect.WebAdmin.Api, for the VSBuild@1 task, the aspNetCore node is:
<aspNetCore processPath="dotnet" arguments=".\RTE.Technologies.SafeProtect.WebAdmin.API.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Test" />
</environmentVariables>
</aspNetCore>
which is correct.
But with the MSBuild@1 the same node contains:
<aspNetCore processPath="dotnet" arguments=".\RTE.Technologies.SafeProtect.WebAdmin.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Test" />
</environmentVariables>
</aspNetCore>
Which is incorrect. The API part is missing. Of course this prevents the application to start because it looks for an assembly that does not exists.
What is going on here ?
EDIT : VSBuild@1 Task
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
feedsToUse: 'config'
nugetConfigPath: 'NuGet.config'
externalFeedCredentials: 'Nuget feed RTE (Sleet)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: CopyFiles@2
inputs:
SourceFolder: '$(system.defaultworkingdirectory)'
Contents: '**\bin\$(BuildConfiguration)\**'
TargetFolder: '$(build.artifactstagingdirectory)'
- task: PublishPipelineArtifact@1
displayName: 'Publish Pipeline Artifact'
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)'
artifact: drop
MSBuild@1 Task:
steps:
- task: DotNetCoreCLI@2
inputs:
command: 'restore'
projects: '$(project)'
feedsToUse: 'config'
nugetConfigPath: '$(system.defaultworkingdirectory)/nuget.config'
- task: MSBuild@1
inputs:
solution: '$(project)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: CopyFiles@2
inputs:
SourceFolder: '$(system.defaultworkingdirectory)'
Contents: 'SafeProtect.WebAdmin.Api/bin/$(buildPlatform)/$(BuildConfiguration)/net5.0/**'
TargetFolder: '$(build.artifactstagingdirectory)'
flattenFolders: true
- task: PublishPipelineArtifact@1
displayName: 'Publish Pipeline Artifact'
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)'
artifact: drop