build .net application in Jenkins using MSBuild
我有一个基于.net framework 3.5构建的.net应用程序,我试图在Jenkins CI服务器上构建该应用程序。 我添加了MSBuild插件,并添加了2.0、3.5和4.0版本的MSBuild的.exe文件的路径。 但是我的构建过程因显示以下错误消息而失败。
1 2 3 4 5 6 7 | Path To MSBuild.exe: msbuild.exe Executing command: cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%% [Test project] $ cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%% 'msbuild.exe' is not recognized as an internal or external command, operable program or batch file. Build step 'Build a Visual Studio project or solution using MSBuild.' marked uild as failure Finished: FAILURE |
谁能帮助我.. ??
要使MSBuild插件正常工作,您需要在Jenkins管理屏幕中配置插件。
注意:在较新的Jenkins版本中,您可以在"全局工具配置"中找到MSBuild配置:
注意"名称"字段,在这里我将此特殊配置称为v4.0.30319。您可以随意命名,但理想情况下,名称会以某种方式引用该版本。
稍后,您将需要在失败的Jenkins PROJECT中引用该名称。
注意:黄色警告表示应使用目录名而不是文件名填充" MSBuild的路径"字段。实际上,您确实也需要在此处输入文件名(即msbuild.exe),否则构建步骤将失败。
在失败的Jenkins项目中,转到MSBuild构建步骤。
构建步骤中的第一个字段是" MSBuild版本"。如果在配置任何MSBuild版本之前创建了构建步骤,则此处的值为(默认值)。
配置一个或多个MSBuild版本后,将使用可用配置填充下拉列表。选择您需要的一个。
您可以在此处看到我现在选择了与上面的安装匹配的命名配置。
1 | Jenkins | Manage Jenkins | Configure System |
向下滚动到" MSBuild"部分,然后单击" MSBuild安装"
定义msbuild.exe的完整路径,在我的系统上,我有3.5和v4.0.30319
注意-即使在64位系统上,也要指定32位工具的路径,否则可能会收到错误消息:
Building Windows Phone application using MSBuild 64 bit is not supported.
因此,在詹金斯(Jenkins)-例如:
名称:版本3.5
路径:
名称:版本4.0
路径:
我认为您应该在Jenkins配置中为" msbuild.exe"设置绝对路径,
例如:
1 | C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe |
您还可以将msbuild.exe所在的路径添加到运行该特定作业的一个或多个节点的PATH系统环境变量中。
您可以尝试执行
1 | %comspec% /k""c:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 |
命令,该命令将临时更新您的环境路径变量以反映VS2010构建环境。在致电MSBUILD之前执行此操作,然后看看会发生什么。我在自己的构建脚本中使用了它,没有任何问题。
边注;在您的PATH上拥有多个版本的MSBUILD很可能适得其反。专注于使一个版本工作并从那里开始。