VSBuild@1 - Visual Studio 生成 v1 任务

使用此任务通过 MSBuild 生成并设置 Visual Studio 版本属性。 详细了解如何在 Azure 上安装Visual Studio 映像。

小提示

在此任务之前,请在管道中使用 NuGetAuthenticate@1 。 有关更多信息,请参阅 为什么我的构建管道失败并提示进行单 Sign-On (SSO) 身份验证?

语法

# Visual Studio build v1
# Build with MSBuild and set the Visual Studio version property.
- task: VSBuild@1
  inputs:
    solution: '**\*.sln' # string. Required. Solution. Default: **\*.sln.
    #vsVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | '12.0' | '11.0'. Visual Studio Version. Default: latest.
    #msbuildArgs: # string. MSBuild Arguments. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. MSBuild Architecture. Default: x86.
    #logProjectEvents: true # boolean. Record Project Details. Default: true.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
    #enableDefaultLogger: true # boolean. Enable Default Logger. Default: true.
    #customVersion: # string. Custom Version.
# Visual Studio build v1
# Build with MSBuild and set the Visual Studio version property.
- task: VSBuild@1
  inputs:
    solution: '**\*.sln' # string. Required. Solution. Default: **\*.sln.
    #vsVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | '12.0' | '11.0'. Visual Studio Version. Default: latest.
    #msbuildArgs: # string. MSBuild Arguments. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. MSBuild Architecture. Default: x86.
    #logProjectEvents: true # boolean. Record Project Details. Default: true.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.

输入

solution - 解决方案
string。 必填。 默认值:**\*.sln

指定要在生成过程中使用的任务的解决方案。

如果要生成单个解决方案,请单击 ... 按钮并指定解决方案。

如果要生成多个解决方案,请指定搜索条件。 可以使用单文件夹通配符(*)和递归通配符(**)。 例如,**.sln 搜索所有子目录中的所有.sln文件。

请确保此生成管道下载指定的解决方案。 在“存储库”选项卡上:

  • 如果使用 TFVC,请确保解决方案是存储库选项卡上其中一个映射的子级。
  • 如果使用 Git,请确保项目或解决方案位于 Git 存储库中,以及要生成的分支中。

小提示

  • 还可以生成 MSBuild 项目 (.*proj) 文件。
  • 如果要生成自定义的 MSBuild 项目文件,建议使用 MSBuild 任务而不是 Visual Studio 生成任务。

vsVersion - Visual Studio 版本
string。 允许的值:latest17.0(Visual Studio 2022)、16.0(Visual Studio 2019)、15.0(Visual Studio 2017)、14.0(Visual Studio 2015)、12.0(Visual Studio 2013)、11.0(Visual Studio 2012)。 默认值:latest

此输入的值必须与用于创建解决方案的 Visual Studio 版本匹配。

/p:VisualStudioVersion={numeric_visual_studio_version} 参数添加到由生成运行的 MSBuild 命令。 例如,如果指定 Visual Studio 2015/p:VisualStudioVersion=14.0 将添加到 MSBuild 命令。

Azure Pipelines:如果你的团队想要将 Visual Studio 与Microsoft托管的代理配合使用,请选择 windows 最新 作为默认生成池。 请参阅 Microsoft托管代理


vsVersion - Visual Studio 版本
string。 允许的值:latest16.0(Visual Studio 2019)、15.0(Visual Studio 2017)、14.0(Visual Studio 2015)、12.0(Visual Studio 2013)、11.0(Visual Studio 2012)。 默认值:latest

此输入的值必须与用于创建解决方案的 Visual Studio 版本匹配。

/p:VisualStudioVersion={numeric_visual_studio_version} 参数添加到由生成运行的 MSBuild 命令。 例如,如果指定 Visual Studio 2015/p:VisualStudioVersion=14.0 将添加到 MSBuild 命令。

Azure Pipelines:如果你的团队想要将 Visual Studio 与Microsoft托管的代理配合使用,请选择 windows 最新 作为默认生成池。 请参阅 Microsoft托管代理


msbuildArgs - MSBuild 参数
string

将其他参数传递给 MSBuild。 有关语法,请参阅 MSBuild Command-Line 参考


platform - 平台
string

指定要生成的平台,例如 Win32x86x64any cpu

小提示

  • 如果要面向 MSBuild 项目(.*proj)文件而不是解决方案,请指定 AnyCPU(无空格)。
  • 在“变量”选项卡上声明生成变量,例如 BuildPlatform(在队列时间选择“允许”),并将其引用为 $(BuildPlatform)。 这样,就可以在对生成进行排队并启用生成多个配置时修改平台。

configuration - 配置
string

指定要生成的配置,例如 debugrelease

小提示

在“变量”选项卡上声明生成变量,例如 BuildConfiguration(在队列时间选择“允许”),并将其引用为 $(BuildConfiguration)。 这样,就可以在对生成进行排队并启用生成多个配置时修改平台。


clean - 干净
boolean。 默认值:false

如果设置为 false,则任务会生成增量生成。 此设置可能会减少生成时间,尤其是在基本代码很大时。 除非还将 Clean 存储库设置为 false,否则此选项没有实际效果。

如果设置为 true,任务将重新生成代码项目中的所有代码。 这等效于 MSBuild /target:clean 参数。


maximumCpuCount - 并行生成
boolean。 默认值:false

可选。 如果 MSBuild 目标配置与并行生成兼容,则可以检查此输入,将 /m 开关传递给 MSBuild(仅限 Windows)。 如果目标配置与并行生成不兼容,请检查此选项可能会导致生成导致文件使用错误,或间歇性或不一致的生成失败。


restoreNugetPackages - 还原 NuGet 包
boolean。 默认值:false

此输入已弃用。 若要还原 NuGet 包,请在生成之前添加 NuGet 工具安装程序 任务。


msbuildArchitecture - MSBuild 体系结构
string。 允许的值:x86(MSBuild x86)、x64(MSBuild x64)。 默认值:x86

可选。 提供要运行的 MSBuild 的体系结构(x86x64)。

小提示

由于 Visual Studio 作为 32 位应用程序运行,因此当生成由运行 Team Foundation 生成服务的 64 位版本的生成代理处理时,可能会遇到问题。 通过选择 MSBuild x86,可以解决这些问题。


logProjectEvents - 记录项目详细信息
boolean。 默认值:true

可选。 记录每个项目的日程表详细信息。


createLogFile - 创建日志文件
boolean。 默认值:false

可选。 创建日志文件(仅限 Windows)。


logFileVerbosity - 日志文件详细程度
string。 可选。 当 createLogFile = true时使用。 允许的值:quietminimalnormaldetaileddiagnostic。 默认值:normal

指定日志文件中的详细级别。


enableDefaultLogger - 启用默认记录器
boolean。 默认值:true

如果设置为 true,则为 MSBuild 启用默认记录器。


customVersion - 自定义版本
string

设置 Visual Studio 的自定义版本。 示例:15.016.017.0。 必须在系统中安装所需的 Visual Studio 版本。

Azure Pipelines:如果你的团队想要将 Visual Studio 2022 与Microsoft托管的代理配合使用,请选择 windows-2022 作为默认生成池。 有关详细信息,请参阅 Microsoft托管代理


任务控制选项

除任务输入之外,所有任务都具有控制选项。 有关详细信息,请参阅 控件选项和常见任务属性

输出变量

没有。

注解

为什么我的构建管道失败并提示进行单 Sign-On (SSO) 身份验证?

如果凭证过期,构建可能会失败。 为避免这些失败,我们建议使用 NuGet Authenticate 任务重新安装凭据提供程序并自动刷新凭据。 这可确保在管道执行期间不间断地访问。

steps:
# Authenticate with NuGet to ensure credentials are refreshed
- task: NuGetAuthenticate@1 
# Build the solution using VSBuild
- task: VSBuild@1
  inputs:
    solution: '**/*.sln' 

详细了解如何在 Azure 上安装Visual Studio 映像。

重要

此任务仅在运行 Windows 的代理上受支持。

要求

要求 说明
管道类型 YAML,经典生成
运行时间 代理,DeploymentGroup
需求 自承载代理必须具有与以下 要求 运行使用此任务的作业 功能:msbuild、visualstudio
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任何
Settable 变量 任何
代理版本 1.95.0 或更高版本
任务类别 建造