我是Azure构建管道的新手,在某种程度上,我已经成功地创建了一个构建和发布工件。
问题:当构建准备就绪时,我正在复制工件,它会进入一些奇怪的路径,我可以在下载后看到它。
Like ==> My.Web\Content\D_C\a\1\s\My.Web\obj\Release\Package\PackageTmp
我只需要包含发布版本,可以直接复制到IIS的压缩。
trigger:
- '*'
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: '/t:build /p:DeployOnBuild=true /p:OutputPath="$(Build.ArtifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(build.artifactStagingDirectory)\_PublishedWebsites\My.Web_Package\My.Web.zip'
publishLocation: 'pipeline'
artifact: 'drop'
name: 'WebArtifact-$(Build.BuildNumber)'
字符串
让我知道我做错了什么,也在我的解决方案有多个项目库,但我需要一个发布版本的ASP.NET MVC 5 Web项目应用程序,这是在我的解决方案。
请公会如果有更好的方式来写这个管道。
也让我知道,如果我们可以添加版本号/版本号相同。
非常感谢您的任何建议和投入。
1条答案
按热度按时间bpsygsoo1#
将在默认情况下发布该文件
VS Build任务将构建您的应用,类似于使用MSBuild构建任务的Visual Studio。
Visual Studio:-
x1c 0d1x的数据
我构建了应用程序并将其发布到本地文件夹中,这就是构建文件夹的样子:
的
Azure构建管道:-
同样的事情发生在你的Azure DevOps管道中,当你使用Vs Build时,Build是用Ms Build完成的,发布的工件存储在-
$(Build.ArtifactStagingDirectory)
>根据这个MS文档:Build.ArtifactStagingDirectory
是用于运行管道的Azure DevOps代理的预定义变量。由于您使用windows-latest作为代理,ArtifactStagingDirectory路由到c:\agent_work\1\a
。因此它被存储到上面的默认位置。我已经使用下面的YAML pipeline来构建 *
Asp.Net MVC 5
项目,并将其发布为zip
,并将发布的工件名称设置为build-number。参考VsBuild here。
字符串
输出:-
的
的
x1c4d 1x的
VSbuild task
,因为你需要管理多个包和库,我建议使用**.NET Core CLI
*任务来构建你的应用程序,然后发布到IIS中,如下所示:-型
有一个**
zipAfterPublish: true
**参数,它将在构建完成后压缩构建工件。输出:-
型
型