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
msbuild.exe is not recognized command after build in Jenkins
提问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/
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
采纳答案by Sumeshk
If you want to build a .NET project using Jenkins, follow these steps:
如果要使用 Jenkins 构建 .NET 项目,请按照以下步骤操作:
Install MsBuild Plugin
Go to
Jenkins -> Manage Jenkins -> Configure System
(On newer versions:Jenkins -> Manage Jenkins -> Global Tool Configuration -> MSBuild
)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
Save and apply the changes.
Select your job.
Select Add Build Step.
Select MsBuild version.
Specify the path to the project file (.csproj or .sln)
去
Jenkins -> Manage Jenkins -> Configure System
(在较新的版本:Jenkins -> Manage Jenkins -> Global Tool Configuration -> MSBuild
)在 MSBuild 部分中,单击AddMsBuild按钮并指定详细信息:
- 名称:MsBuild 的名称
- MsBuild 的路径:指定msbuild.exe 的路径。例子:
C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe
保存并应用更改。
选择你的工作。
选择添加构建步骤。
选择 MsBuild 版本。
指定项目文件的路径(.csproj 或 .sln)
- Build your project.
- 构建您的项目。
回答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 Jenkins
menu. 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