我正在使用Azure管道部署Net Core 2.2应用
yml:
trigger:
- dev
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Debug'
steps:
- task: NuGetToolInstaller@1
- task: UseDotNet@2
displayName: 'Use dotnet sdk 2.2'
inputs:
version: 2.x
includePreviewVersions: false
- 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:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
# code coverage
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'
- script: dotnet -d ef -v migrations script --output $(Build.ArtifactStagingDirectory)\SQL\$(scriptName) --context $(dbContext) --idempotent --project src\WorkFlowManager.EntityFrameworkCore\WorkFlowManager.EntityFrameworkCore.csproj
- task: PublishBuildArtifacts@1
现在我向解决方案中添加了一个我想从构建中排除的azure函数项目,因为最后一个项目是使用net core 3.1开发的。
我正在尝试使用类似的方法将其从管道中排除:
variables:
solution: |
'**/*.sln'
'!**/*Project.AzureFunction*.csproj'
buildPlatform: 'Any CPU'
buildConfiguration: 'Debug'
但是该构建无法正常工作
Starting: VSBuild
==============================================================================
Task : Visual Studio build
Description : Build with MSBuild and set the Visual Studio version property
Version : 1.166.0
Author : Microsoft Corporation
Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/build/visual-studio-build
==============================================================================
##[error]Solution not found using search pattern ''**\*.sln'
'!**\*WorkFlowManager.Functions.EnelGenerator*.csproj'
'.
Finishing: VSBuild
有什么想法吗?
答案 0 :(得分:1)
VSBuild@1任务用于构建VS解决方案。因此,您可以将新项目放在同一存储库中的单独解决方案中。
或者您可以在构建步骤中使用DotNetCoreCLI@2任务,该任务允许您指定单个项目或要构建的解决方案(请参见build multiple projects)。
答案 1 :(得分:1)
要从构建中排除azure功能项目,可以直接修改解决方案文件以排除azure功能项目。
对于以下示例,NUnitTest2.csproj在解决方案文件(.sln)中被注释掉,并且在构建解决方案时将其排除在外。您还可以查看this thread了解其他解决方法。
如果您不想修改解决方案文件。您可以使用DotNetCoreCLI @ 2任务来构建除如下所示的天蓝色函数项目以外的所有项目(使用!
排除项目)。
- task: DotNetCoreCLI@2
inputs:
command: build
projects: |
**\*.csproj
!**\azurefunction.csproj