Visual Studio(.sln)生成runner和MSBuild之间的区别

我试图设置TeamCity使用.Net配置CI并配置我拥有的构建运行程序:

  • Visual Studio(sln)
  • 的MSBuild
  • Visual Studio 2003
  • 有什么不同? 为什么三个构建工作在同一类型的项目上? (除了2003年的例外,我相信为什么?)

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

  • .NET Process Runner
  • 命令行
  • “命令行”版本运行程序不适用于任何.net程序集? 为什么.Net Process Runner?


    Visual Studio(sln)
    如果你的解决方案很小,并且你不需要做一些精美的事情,你可以使用Visual Studio(sln)build runner。 它和你做Project-> Build(从VS菜单)完全一样。 此选项非常易于配置,只需点击几下,CI服务器即可编译您的解决方案。

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


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

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

    在通用中,我尝试保持精简并意味着构建机器,并且只在需要时才安装Visual Studio。


    我注意到两者之间很少。 特别是在我们的例子中,我们需要构建一个.vdproj。 现在谷歌搜索后,两个跑步者可以做到这一点,命令行亚军或Visual Studio(SLN)。 但是,在执行Visual Studio(sln)runner类型时,出现以下错误:“[Warning] C: BuildAgent work 1bd75058d7bca32b POS PoSWidgetInstaller myInstaller.vdproj.metaproj警告MSB4078:项目文件”myInstaller myInstaller。 vdproj“不被MSBuild支持,无法构建。”

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

    链接地址: http://www.djcxy.com/p/81625.html

    上一篇: Differences between Visual Studio (.sln) build runner and MSBuild

    下一篇: How to automate deployment of Web Application in Visual Studio 2010?