【问题标题】:Difference between .NetCore, VisualStudio build and MSBuild task in Azure Pipeline?Azure Pipeline 中 .Net Core、Visual Studio 构建和 MSBuild 任务之间的区别?
【发布时间】:2019-10-03 14:25:16
【问题描述】:

我正在为我的 .Net Core 项目创建一个新的 CI Azure 管道。在 Azure 管道中,微软提供了三个构建任务,即 .Net Core、Visual Studio Build 和 MSBuild。

由于所有三个任务都执行构建操作,我们是否有任何特定标准来选择一个任务而不是另一个任务?

我浏览了 Microsoft 提供的文档,但找不到更多详细信息。

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/visual-studio-build?view=azure-devops

编辑 注意:我知道 Visual Studio 构建任务有一个版本控制子任务,但这也可以通过单独的自定义任务来实现。

【问题讨论】:

  • 你说项目是.Net Core,微软提供.Net Core任务,为什么要用其他任务?
  • 其他任务也可用于构建 .Net Core 项目。 Microsoft 是否提供了任何指南,为什么要在其他两项任务中使用它?

标签: .net-core azure-devops continuous-integration azure-pipelines


【解决方案1】:

Azure Pipeline 中 .NetCore、VisualStudio 构建和 MSBuild 任务的区别?

我们知道,dotnet 是建立在msbuild 之上的,我们可以使用dotnet CLI 调用msbuild tasks

这就是您可以使用MSBuild task.Net Core task 来构建您的项目/解决方案的原因。

毫无疑问,dotnet 具有msbuild 中没有的一些功能,例如dotnet new。此时,dotnetmsbuild 更容易使用。

但是,如果我们构建一些.net 项目(不是.net core),我们只需要使用MSBuild task 而不是.NET Core task。因为我们不需要安装不必要的dotnet SDK

因此,当我们在没有特殊需求的情况下构建项目/解决方案时,.net core taskmsbuild task 只是口味问题。

另一方面,MSBuild 是 Visual Studio 的一部分,当我们使用 Visual Studio 构建项目/解决方案时,它会调用 MSBuild 执行一些构建任务以完成构建项目/解决方案。

有时我们不想在构建服务器上安装完整的 Visual Studio 来构建我们的项目/解决方案,在这种情况下,我们可以使用 MSBuild task 在服务器上构建项目/解决方案,而不是安装完整的 Visual Studio。

简而言之,dotnet 构建在 msbuild 之上,MSBuild 是 Visual Studio 的一部分,这就是您可以使用 MSBuild 和 Visual Studio 构建 .net 核心项目的原因。

查看this thread了解更多详情。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-19
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    相关资源
    最近更新 更多