无法加载项目文件。根元素缺失

Kri*_*isT 7 msbuild .net-3.5 visual-studio jenkins-pipeline visual-studio-2017-build-tools

我正在尝试在 Jenkins 中构建 dotnet 3.5 项目解决方案文件VS Build tools 2017。该项目使用 DotNet 3.5 的 MSBuild 编译得很好,但是当我尝试使用MSBuild Engine Version 15.9.21+g9802d43bc3进行相同的活动时,它抛出MSBUILD : error MSB4025: The project file could not be loaded. Root element is missing.

这是我用来编译 dotnet 3.5 项目的命令。

cd "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin"
MSBuild.exe "%WORKSPACE%\WBR.sln" /p:Configuration=Debug /p:DeployOnBuild=True /p:AllowUntrustedCertificate=True /p:CreatePackageOnPublish=True
Run Code Online (Sandbox Code Playgroud)

请在下面找到 Jenkins 执行日志

C:\Users\Netadmin\.jenkins\jobs\FCRS\jobs\FCRS_VS\workspace>cd "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin" 

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin>MSBuild.exe "C:\Users\Netadmin\.jenkins\jobs\FCRS\jobs\FCRS_VS\workspace\WBR.sln" /p:Configuration=Debug /p:DeployOnBuild=True /p:AllowUntrustedCertificate=True /p:CreatePackageOnPublish=True 
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
Build started 8/19/2019 6:38:12 PM.
MSBUILD : error MSB4025: The project file could not be loaded. Root element is missing.

Build FAILED.

  MSBUILD : error MSB4025: The project file could not be loaded. Root element is missing.

    0 Warning(s)
    1 Error(s)
Run Code Online (Sandbox Code Playgroud)

下图是我的詹金斯工作区目录。

任何帮助都会很棒。

在此输入图像描述

Lan*_*SFT 1

当您使用 command 时msbuild xx.sln,您实际上是在构建属于解决方案的项目。

根据您的错误消息:项目的项目文件之一(xx.csproj)未加载,导致msbuild无法很好地读取xml内容。你可以试试:

1.打开xx.csproj文件并确保其格式为:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
...
</Project>
Run Code Online (Sandbox Code Playgroud)

2.保存UTF-8 encoding为避免BOM混乱

3.备份然后删除.suo和.csproj.user文件

4.否则,由于是asp.net mvc项目,可以通过vs2017创建一个同名的asp.net mvc项目,将所有源文件复制到新项目中,将项目迁移到VS2017

5.确保您的构建工具包安装了 Web 开发工作负载:

在此输入图像描述

6.由于在.net3.5中使用msbuild时效果很好,因此您可以在服务器中安装.net Framework 3.5并尝试调用msbuild,而C:\Windows\Microsoft.NET\Framework64\v3.5不是C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin在从vs2010构建.net 3.5项目时调用msbuild。