C# 在 Jenkins 中构建后无法识别 msbuild.exe 命令

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/18588395/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-10 12:39:45  来源:igfitidea点击:

msbuild.exe is not recognized command after build in Jenkins

c#.netmsbuildjenkins

提问by Martin

1. sharing violation

1.分享违规

after following http://programmaticponderings.wordpress.com/2012/08/08/convert-vs-2010-database-project-to-ssdt-and-automate-publishing-with-jenkins-part-33/

在遵循http://programmaticponderings.wordpress.com/2012/08/08/convert-vs-2010-database-project-to-ssdt-and-automate-publishing-with-jenkins-part-33/ 之后

    echo 'Copying Adventure Works Solution to Jenkins workspace...'
xcopy /s /E /H /Y /R "C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3" "C:\Program Files (x86)\Jenkins\jobs\testing003\workspace" 

echo 'Deleting artifacts from previous builds...'
del "%WORKSPACE%\*_publish.zip" /F /Q

2.Build ms project with MS build

2.Build ms project with ms build

After add C:\Windows\Microsoft.NET\Framework\v4.0.30319\ environment variables path and set build C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe in Jenkins

在 Jenkins 中添加 C:\Windows\Microsoft.NET\Framework\v4.0.30319\ 环境变量路径并设置 build C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe 后

'C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database3.sqlproj' /p:Configuration=Database3 /p:Platform=AnyCPU /t:Build;Publish /p:SqlPublishProfilePath='C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database3.publish.xml' /p:UpdateDatabase=False


Executing the command cmd.exe /C msbuild.exe "C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database3.sqlproj" /p:Configuration=Database3 /p:Platform=AnyCPU /t:Build;Publish "/p:SqlPublishProfilePath=C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database3.publish.xml" /p:UpdateDatabase=False C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe && exit %%ERRORLEVEL%% from C:\Program Files (x86)\Jenkins\jobs\testing003\workspace
[workspace] $ cmd.exe /C msbuild.exe "C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database3.sqlproj" /p:Configuration=Database3 /p:Platform=AnyCPU /t:Build;Publish "/p:SqlPublishProfilePath=C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database3.publish.xml" /p:UpdateDatabase=False C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe && exit %%ERRORLEVEL%%
'msbuild.exe' is not recognized as an internal or external command,


C:\Users\User2>cmd.exe /C msbuild.exe "C:\Users\LAB-User2\Documents\Visual S
tudio 2012\Projects\Database3\Database3.sqlproj" /p:Configuration=Database3 /p:P
latform=AnyCPU /t:Build;Publish "/p:SqlPublishProfilePath=C:\Users\LAB-User2\Doc
uments\Visual Studio 2012\Projects\Database3\Database3.publish.xml" /p:UpdateDat
abase=False C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe && exit %%
ERRORLEVEL%% from C:\Program Files (x86)\Jenkins\jobs\testing003\workspace
Microsoft (R) Build Engine version 4.0.30319.17929
[Microsoft .NET Framework, version 4.0.30319.18034]
Copyright (C) Microsoft Corporation. All rights reserved.

MSBUILD : error MSB1008: Only one project can be specified.
Switch: C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe

For switch syntax, type "MSBuild /help"

updateFull Console output

更新完整控制台输出

Started by user anonymous
Building in workspace C:\Program Files (x86)\Jenkins\jobs\testing003\workspace
[workspace] $ cmd /c call C:\Windows\TEMP\hudson1045566609826009314.bat

C:\Program Files (x86)\Jenkins\jobs\testing003\workspace>echo 'Copying Adventure Works Solution to Jenkins workspace...' 
'Copying Adventure Works Solution to Jenkins workspace...'

C:\Program Files (x86)\Jenkins\jobs\testing003\workspace>xcopy /s /E /H /Y /R "C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3" "C:\Program Files (x86)\Jenkins\jobs\testing003\workspace"  
C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database3.sln
C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database3.v11.suo
C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\excludefiles.txt
C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database3\Database3.dbmdl
Sharing violation

C:\Program Files (x86)\Jenkins\jobs\testing003\workspace>echo 'Deleting artifacts from previous builds...' 
'Deleting artifacts from previous builds...'

C:\Program Files (x86)\Jenkins\jobs\testing003\workspace>del "C:\Program Files (x86)\Jenkins\jobs\testing003\workspace\*_publish.zip" /F /Q 
Could Not Find C:\Program Files (x86)\Jenkins\jobs\testing003\workspace\*_publish.zip

C:\Program Files (x86)\Jenkins\jobs\testing003\workspace>exit 0 
Path To MSBuild.exe: msbuild.exe
Executing the command cmd.exe /C msbuild.exe "C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database3.sqlproj" /p:Configuration=Database3 /p:Platform=AnyCPU /t:Build;Publish "/p:SqlPublishProfilePath=C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database3.publish.xml" /p:UpdateDatabase=False C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe && exit %%ERRORLEVEL%% from C:\Program Files (x86)\Jenkins\jobs\testing003\workspace
[workspace] $ cmd.exe /C msbuild.exe "C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database3.sqlproj" /p:Configuration=Database3 /p:Platform=AnyCPU /t:Build;Publish "/p:SqlPublishProfilePath=C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database3.publish.xml" /p:UpdateDatabase=False C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe && 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 build as failure
Finished: FAILURE

enter image description here

enter image description here

采纳答案by Sumeshk

If you want to build a .NET project using Jenkins, follow these steps:

如果要使用 Jenkins 构建 .NET 项目,请按照以下步骤操作:

  1. Install MsBuild Plugin

  2. Go to Jenkins -> Manage Jenkins -> Configure System(On newer versions: Jenkins -> Manage Jenkins -> Global Tool Configuration -> MSBuild) msbuild

  3. In the MSBuild section click the AddMsBuildbutton and specify the details:

    • Name: Name of the MsBuild
    • Path to MsBuild: Specify the path of msbuild.exe. Example: C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe
  4. Save and apply the changes.

  5. Select your job.

  6. Select Add Build Step.

  7. Select MsBuild version.

  8. Specify the path to the project file (.csproj or .sln)

  1. 安装MsBuild 插件

  2. Jenkins -> Manage Jenkins -> Configure System(在较新的版本:Jenkins -> Manage Jenkins -> Global Tool Configuration -> MSBuildmsbuild

  3. 在 MSBuild 部分中,单击AddMsBuild按钮并指定详细信息:

    • 名称:MsBuild 的名称
    • MsBuild 的路径:指定msbuild.exe 的路径。例子:C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe
  4. 保存并应用更改。

  5. 选择你的工作。

  6. 选择添加构建步骤

  7. 选择 MsBuild 版本。

  8. 指定项目文件的路径(.csproj 或 .sln)

msbuild in project

msbuild in project

  1. Build your project.
  1. 构建您的项目。

回答by Zav

select the MSBuild Version in job's configuration,and the MSBuild Version is configured in your jenkins' configure system.

在作业的配置中选择 MSBuild 版本,并且在 jenkins 的配置系统中配置了 MSBuild 版本。

回答by user7258708

For the latest version of jenkins (3.0), you have to configure MSBuild in in the Tools>Manage Jenkinsmenu. Name a job here eg: msbuild. Once that is done, go to the job. Under the MSBuild module select the build (in this case msbuild) and now kick off the job. You should be good to go.

对于最新版本的 jenkins (3.0),您必须在Tools>Manage Jenkins菜单中配置 MSBuild 。在这里命名一个工作,例如:msbuild。完成后,去上班。在 MSBuild 模块下选择构建(在本例中msbuild),现在开始工作。你应该很高兴去。

回答by Srijani Ghosh

For the newer version of Jenkins, this option is available under this section ..

对于较新版本的 Jenkins,此选项在此部分下可用..

Manage Jenkins -> Global Tool Configuration ->  MSBuild

From this answer: https://stackoverflow.com/a/37939483/2880781

从这个答案:https: //stackoverflow.com/a/37939483/2880781