【问题标题】:msbuild.exe is not recognized command after build in Jenkins在 Jenkins 中构建后,msbuild.exe 无法识别命令
【发布时间】:2013-09-06 11:00:22
【问题描述】:

1.共享违规

关注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.使用 MS build 构建 ms 项目

添加后 C:\Windows\Microsoft.NET\Framework\v4.0.30319\ 环境变量路径 并在 Jenkins 中设置 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"

更新 完整的控制台输出

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

【问题讨论】:

    标签: c# .net msbuild jenkins


    【解决方案1】:

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

    1. 安装MsBuild Plugin

    2. 转到Jenkins -> Manage Jenkins -> Configure System (在较新版本上:Jenkins -> Manage Jenkins -> Global Tool Configuration -> MSBuild

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

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

    5. 选择你的工作。

    6. 选择添加构建步骤

    7. 选择 MsBuild 版本。

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

    1. 构建您的项目。

    【讨论】:

    • 你的意思是看不到这个Jenkins->Manage Jenkins ->Configure System 选项?
    • 你必须在 jenkins 配置系统选项中指定你的 msbuild.exe 路径,而不是在你的作业配置选项中
    • 并在您的工作配置设置中选择您的 msbuild 的名称(在我的情况下是(Net3.5),并在 MsBuild 文件中指定项目的路径,例如 E:\test\abc .csproj
    • 我正在使用通过 Windows Installer 作为 Windows 服务安装的 Jenkins 2.1.7。我在 Jenkins -> Manage Jenkins -> Configure System 中看不到任何与 MSBuild 相关的内容。我已经安装了 MSBuild 插件,但在配置 Jenkins 中没有看到它。这是 2.1.7 中的错误吗?
    • 如果有人遇到与 @Matt 相同的问题,则此设置似乎已在 Jenkins 的最新版本中移动 stackoverflow.com/questions/37938757/…
    【解决方案2】:

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

    Manage Jenkins -> Global Tool Configuration ->  MSBuild
    

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        在job的配置中选择MSBuild Version,MSBuild Version在你的jenkins配置系统中配置。

        【讨论】:

          【解决方案5】:
          1. 在服务器上安装 Visual Studio
          2. 登录您的 Jenkins
          3. 安装 MSBuild 插件
          4. 转到 Jenkins > 管理 Jenkins > 全局工具配置
          5. 单击 MSBuild 安装
          6. 点击添加 MSBuild
          7. 名称:Visual Studio(即 Visual Studio 2019 社区)
          8. MSBuild 的路径(即 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin)
          9. 点击保存
          10. 转到您的 Jenkins 项目
          11. 点击配置
          12. 去构建
          13. 选择您的 MSBuild 版本
          14. 输入您的解决方案文件的名称

          【讨论】:

            猜你喜欢
            • 2022-12-17
            • 1970-01-01
            • 2017-11-27
            • 2020-04-11
            • 1970-01-01
            • 2018-02-11
            • 2020-08-28
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多