我已经在Jenkins的全局工具配置中配置了
msbuild.exe
的路径。我还在Jenkins中设置了一个多分支流水线,可以成功地从git仓库中获取Jenkinsfile
。我的问题是:如何在
Jenkinsfile
中调用MSBuild插件作为一个步骤?请注意,我知道我可以直接将
msbuild.exe
作为Windows批处理步骤调用,但如果可能的话,我更喜欢通过MSBuild插件进行操作。msbuild.exe
的路径。我还在Jenkins中设置了一个多分支流水线,可以成功地从git仓库中获取Jenkinsfile
。Jenkinsfile
中调用MSBuild插件作为一个步骤?msbuild.exe
作为Windows批处理步骤调用,但如果可能的话,我更喜欢通过MSBuild插件进行操作。进入使用MSBuild插件的自由风格任务的配置页面
向下滚动到msbuild部分,点击“MSBuild版本”下拉菜单,注意列出的确切名称。这是您的“命名MSBuild配置”。选择一个名称作为下一步要使用的名称。
打开您的Jenkinsfile,找到要调用msbuild的阶段和步骤,然后添加此行并替换“MSBuild 15.0”为您在第2步中选择的名称:
bat ""${tool 'MSBuild 15.0'}\\msbuild" SolutionName.sln /p:Configuration=Release /p:Platform="Any CPU" /p:ProductVersion=1.0.0.${env.BUILD_NUMBER}"
像这样...
(对于声明性管道,您需要将其放在“script”块内。如果您不知道什么是“声明性管道”,它是在Jenkins中使用“groovy”语言编写管道脚本的两种样式之一。有关更多信息此处是脚本化与声明性样式的比较。)
(我通常使用重放按钮,允许我在线编辑Jenkins中的脚本,而不是编辑,提交和推送到远程存储库...这只是节省一些调试时间。)
5. 检查在步骤4中运行的流水线作业的输出。您应该看到类似以下的内容,表明已调用正确版本的MSBuild。如果没有,则可能是您输错了或者需要管理员介入。6. 恭喜!您现在可以配置您的构建了!请将SolutionName.sln替换为您的构建文件,并传递正确的参数。workspace\Pipeline_Test>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild" SolutionName.sln /p:Configuration=Release /p:Platform="Any CPU" /p:ProductVersion=1.0.0.308 Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework Copyright (C) Microsoft Corporation. All rights reserved.
bat "\"${tool 'MSBuild 15.0'}\\msbuild\" SolutionName.sln /p:Configuration=Release /p:Platform=\"Any CPU\" /p:ProductVersion=1.0.0.${env.BUILD_NUMBER}"
- pablo.bueti我很惊讶所有的解决方案都对我无效。
平台:Window 10,Jenkins在2020-11-05最新版本。
我不确定是否有任何原因会导致窗口和其他操作系统使管道脚本引擎表现不同。
以下是可能遇到的问题和最终与上述解决方案相结合的解决方案。
因此,这是在window平台的jenkin中向管道脚本添加MSbuild的工作解决方案
bat '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\msbuild" YourSolution.sln /p:Configuration=Release /p:Platform="Any CPU" /p:ProductVersion=1.0.0.${env.BUILD_NUMBER}'