Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Jenkins中生成后,无法识别msbuild.exe命令_C#_.net_Msbuild_Jenkins - Fatal编程技术网

C# 在Jenkins中生成后,无法识别msbuild.exe命令

C# 在Jenkins中生成后,无法识别msbuild.exe命令,c#,.net,msbuild,jenkins,C#,.net,Msbuild,Jenkins,1。共享冲突 之后 2.使用ms构建构建ms项目 添加C:\Windows\Microsoft.NET\Framework\v4.0.30319\environment variables路径后 并在Jenkins中设置build C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe 'C:\Users\LAB-User2\Documents\Visual Studio 2012\Projects\Database3\Database

1。共享冲突

之后

2.使用ms构建构建ms项目

添加C:\Windows\Microsoft.NET\Framework\v4.0.30319\environment variables路径后 并在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

如果要使用Jenkins构建.NET项目,请执行以下步骤:

  • 安装

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

  • 在MSBuild部分中,单击添加MSBuild按钮并指定详细信息:

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

  • 选择你的工作

  • 选择添加构建步骤

  • 选择MsBuild版本

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

  • 构建您的项目
    在作业的配置中选择MSBuild版本,然后在jenkins的配置系统中配置MSBuild版本。

    对于最新版本的jenkins(3.0),您必须在
    工具>管理jenkins
    菜单中配置MSBuild。在此处命名作业,例如:
    msbuild

    一旦完成,就开始工作。在MSBuild模块下选择生成(在本例中为
    MSBuild
    ),然后开始作业。您应该准备好了。

    对于较新版本的Jenkins,此选项在本节中提供

    Manage Jenkins -> Global Tool Configuration ->  MSBuild
    
    从这个答案中:

  • 在服务器上安装Visual Studio
  • 登录你的Jenkins
  • 安装MSBuild插件
  • 转到Jenkins>管理Jenkins>全局工具配置
  • 单击MSBuild安装
  • 单击添加MSBuild
  • 名称:Visual Studio(即Visual Studio 2019社区)
  • MSBuild的路径(即C:\ProgramFiles(x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin)
  • 单击保存
  • 去你的詹金斯项目
  • 单击配置
  • 建造
  • 选择您的MSBuild版本
  • 在文件中输入用户的名称

  • 您的意思是看不到此Jenkins->Manage Jenkins->Configure System选项吗?您必须在Jenkins Configure System选项中指定msbuild.exe路径,而不是在作业配置选项中指定,并在作业的配置设置中选择msbuild的名称(在我的情况下是(Net3.5)),并在MsBuild文件中指定项目的路径,例如E:\test\abc.csprojI,我使用的是通过Windows安装程序作为Windows服务安装的Jenkins 2.1.7。我在Jenkins->Manage Jenkins->Configure System中没有看到与MsBuild相关的任何内容。我已经安装了MsBuild插件,但在Configure Jenkins中没有看到它。这是2.1.7中的bug?如果有人与@Matt有相同的问题,那么在Jenkins的最新版本中,这个设置似乎已经改变了
    Manage Jenkins -> Global Tool Configuration ->  MSBuild