首页 文章

Visual Studio(.sln)构建运行器和MSBuild之间的差异

提问于
浏览
20

我正在尝试将TeamCity设置为使用.Net进行配置并配置我拥有的构建运行程序:

  • Visual Studio(sln)

  • MSBuild

  • Visual Studio 2003

有什么不同?为什么三个构建在同一类型的项目上工作? (2003年只有2003年,我相信,为什么?)

考虑到这个问题,我们为.exe文件提供了这个构建运行器:

  • .NET Process Runner

  • 命令行

“命令行”构建运行器不适用于任何.net程序集?为什么选择.Net Process Runner?

4 回答

  • 0

    Visual Studio (sln)
    如果您的解决方案很小并且您不需要做任何花哨的事情,您可以使用Visual Studio(sln)构建运行器 . 它与Project-> Build(来自VS菜单)完全相同 . 此选项非常易于配置,只需单击几下,CI服务器即可编译您的解决方案 .

    MSBuild
    如果你需要做更高级的场景,除了简单的编译,比如应用不同的配置文件,将转换后的值插入配置文件,部署二进制文件等,你可以选择MSBuild选项 . 你会知道什么时候需要使用它,因为sln builder无法做到这一点 . 此选项需要一些构建脚本语言的知识,这是一个基于任务和类似xml的语言 .

  • 3

    当您使用MSBuild构建.SLN文件(非MSBuild文档)时,它会生成一个内存MSBuild文件,该文件引用要在指定配置中构建的所有项目,然后执行它 . 当您使用Visual Studio构建时,您正在调用DevEnv.com .

    某些项目类型(2005/2008中的C和2005/2008/2010中的VDPROJ)不是MSBuild文件,不能仅使用MSBuild构建 . 您将收到一个构建警告,指出一个或多个项目不是有效的MSBuild项目,无法构建 .

    在一般情况下,我尝试维护精简和平均构建机器,并且只在需要时才安装Visual Studio .

  • -1

    我注意到两者之间很少 . 特别是在我们的实例中,我们需要构建一个.vdproj . 现在用谷歌搜索两个跑步者后,Command line runner或Visual Studio(sln) . 但是,当执行Visual Studio(sln)运行器类型时,我们收到以下错误:“[警告] C:\ BuildAgent \ work \ 1bd75058d7bca32b \ POS \ PoSWidgetInstaller \ myInstaller.vdproj.metaproj警告MSB4078:项目文件”myInstaller \ myInstaller . MSBuild不支持vdproj,无法构建 . “

    并且在解决方案中内置时不会失败 . 我认为Visual Studio(sln)运行器类型从sln文件中提取数据,然后将其与MSbuild一起使用 . 不确定无法确认,只是我的想法 .

  • 14

    如果您使用解决方案文件(Visual Studio)方式,则意味着您需要为构建服务器许可Visual Studio的副本以及随之而来的安装/维护 . 如果你使用MSBuild,你不需要任何这些,你只需要.net框架安装 . 两者之间唯一真正的区别是Visual Studio设置了各种环境变量并利用了构建顺序之类的东西 . 虽然MSBuild默认情况下没有设置任何环境变量,并且无法识别构建顺序,但它只会重新确定依赖项 . 虽然在Visual Studio中会稍微容易一些,但是你不会遇到那些你依赖visual studio来掩盖一些邋 . 的情况 .

相关问题