我在运行具有以下项目/文件夹结构的Azure构建管道时遇到问题(不需要的行为)。
我的存储库的根文件夹有两个主要文件夹:
我正在尝试构建两个单独的Azure管道,一个用于后端,另一个用于前端,因此我使用projects:
参数指定正确的路径。
build
和test
命令运行正常,并且只恢复/构建/测试后端
文件夹,但是发布
命令正在为两个文件夹运行:后端
这是我的yaml文件:
#build backend project
task: DotNetCoreCLI@2
displayName: dotnet build --configuration $(buildConfiguration)
name: BuildBackendProject
inputs:
command: build
projects: '**/backend/**/*.csproj'
arguments: '--configuration $(buildConfiguration)'
... #run some tests
#publish backend project
task: DotNetCoreCLI@2
displayName: dotnet publish backend --configuration $(buildConfiguration)
name: PublishBackendProject
inputs:
command: publish
projects: '**/backend/**/*.csproj'
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output
$(Build.ArtifactStagingDirectory)/backend'
zipAfterPublish: True
我尝试了不同的文件夹路径,但它总是运行两个发布命令。
如果我在本地运行CMDdotnet发布后端
(从回购的根文件夹),它可以正常工作,但显然不适用于Azure管道。
非常感谢您的任何想法或解决方案。
诀窍在于使用PublishWebProjects/project属性。这些实际上是相互排斥的。如果使用了PublishWebProjects
,则会跳过project
属性值。
从留档:
发布Web项目*:如果为true,则任务将尝试在存储库中查找Web项目并对其运行发布命令。Web项目通过目录中是否存在web.config文件或www root文件夹来标识。
因此,您可以尝试以下代码进行发布:
task: DotNetCoreCLI@2
displayName: dotnet publish backend --configuration $(buildConfiguration)
name: PublishBackendProject
inputs:
command: publish
projects: '**/backend/**/*.csproj'
publishWebProjects: false
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)/backend'
zipAfterPublish: true
我想了解从发布管道中的Azure密钥库中读取机密的最佳实践是什么。这里推荐哪一种方法?为什么?
Azure应用服务部署成功完成,但文件未更新。 我正在使用管道步骤版本4。* WebApp.zip成功地从构建中检索,它包含文件,但是在一个奇怪的子文件夹结构中:(我的路径从平台开始)。 我已经尝试过使用WebApp发布步骤,但它说它与zip文件不兼容。 这是发布步骤的日志输出:
看起来,PublishBuildArtifacts任务在发布环境中不可用。 https://docs.microsoft.com/de-de/azure/devops/pipelines/tasks/utility/publish-pipeline-artifact?view=azure-德沃斯 但是,当我们的客户从Azure存储库(通用软件包)中获取新的工件版本时,有机会通过发布管道发布这些工件
最近刚刚构建了一个 Azure 管道,其中在一个阶段中,项目暂存目录中有不同的 zip 文件。我试图实现的是使用艺术任务将暂存文件夹中的所有zip文件发布到放置文件夹。 我在工件暂存目录中有两个存档的zip文件: $(Build.ArtifactStagingDirectory)/$(Build.BuildId). zip $(Build.ArtifactStagingDirectory)/cli
我试图使用Azure发布管道在一个解决方案中发布多个项目 它们都连接到同一Azure订阅,但有些确实部署到给定的应用程序服务,而另一些则给出未经授权的错误。 我已经研究过了,我读到添加website_webdeploy_use_scm到应用程序服务应该有助于未经授权的错误,但这对我没有帮助。 我还能看什么?我通过Azure Devops连接,所以我只是从它自动从Azure收集的列表中选择订阅,因为
我有一个azure构建管道和发布管道。我在发布构建工件中面临问题。在构建管道中,发布构建工件被正确地创建在默认的“drop”目录中。 当我在发布管道中下载该工件时,发布文件正在服务抛出错误的中下载 您没有查看此目录或页面的权限。 这意味着我的发布工件没有在“home/wwwroot”目录中下载。 构建管道 释放管道 我错过了什么?