【问题标题】:TFS 2012 Build: sln or csproj?TFS 2012 构建:sln 还是 csproj?
【发布时间】:2014-01-22 21:52:00
【问题描述】:

只是想知道在 TFS 2012 中构建项目时是否偏好 sln 或 csproj 文件。我们通常在 TFS 中构建 sln 文件以支持我们的开发团队,这通常是标准,但一个团队问为什么我们不能而是在 TFS 中构建 csproj 文件。

我注意到,要构建 csproj 文件,您必须在 MSBuild Arguments 字段中为 TFS 构建定义提供参数,并且在构建解决方案文件时不必提供这些参数。因此,除了这个小细节之外,我不确定构建 sln 与 csproj 之间的优缺点是什么。

有人可以解释一下在 TFS 中构建 sln 与 csproj 的好处、优缺点吗?是否有共同的做法、标准,或者这真的很重要吗?

【问题讨论】:

    标签: visual-studio-2012 tfs msbuild


    【解决方案1】:

    只是想知道 sln 或 csproj 文件之间是否存在偏好 在 TFS 2012 中构建项目时。我们通常在 TFS 来支持我们的开发团队,这通常是标准,但是一个 团队在问为什么我们不能在 TFS 中构建 csproj 文件。

    他们为什么要这样做?这项调查是否阐明了某种优势?

    我注意到要构建一个 csproj 文件,您必须在 TFS 构建定义的 MSBuild Arguments 字段,而您没有 在构建解决方案文件时必须提供这些参数。所以 除了这个小细节,我不确定利弊是什么 在构建 sln 与 csproj 之间。

    .sln 是一个主项目,它在运行时转换为 msbuild 脚本,并将使用与解决方案中的 .csproj 项目使用相同架构的元数据文件。

    要查看我在说什么,请打开命令提示符,键入“SET MSBUILDEMITSOLUTION=1”,然后键入“msbuild.exe solution.sln”,然后解析新的“solution.metaproj”和“solution.metaproj.tmp” "文件。

    有人可以说明一下好处,优点/缺点 在 TFS 中构建一个 sln vs csproj,有没有一种常见的做法,一个 标准,还是真的很重要?

    .csproj 将是一个项目,而 .sln 将是项目的集合。构建单个 .csproj 将产生该项目的输出二进制文件(以及依赖项),构建整个解决方案将产生整个解决方案的输出。

    【讨论】:

    • 嗨,尼克,感谢 cmets。我实际上很熟悉 sln 和 csproj 文件之间的区别,但只是想知道在进行 TFS 构建时在 csproj 上构建 sln 文件是否有好处。意思是,如果有一个项目(不是多个项目),那么 TFS 2012 构建使用的首选文件(sln 或 csproj)是什么?有没有围绕这个的标准做法?希望这是有道理的。
    【解决方案2】:

    我也有同样的问题。构建时间可能会慢一些,但我自己没有测试过(可能差异可以忽略不计)。我相信当您使用解决方案文件进行构建时,它会自动将“BuildInParallel”设置为 true。

    Faster Buidls with MSBuild

    【讨论】:

      【解决方案3】:

      我目前正在处理 TFS 2012 部署构建。根据我的经验,除非确实需要,否则您不必提供 MSBuild 参数。

      让我们举个例子:你有一个包含 2 个项目的解决方案,

      Soln
      > Web Proj 1
      > Console Proj 2
      > Dependency Library Folder
      

      案例 1:构建一个 sln

      一个。在源设置中,您只需提及您的解决方案文件夹。 MSBuild 将自动处理解决方案中的所有依赖项。

      b.在 Process -> Items to build 中,您必须提及您的解决方案文件。

      c。例如,如果您的解决方案有一个 Web 项目,那么 MSBuild 输出将如下所示,

      \\<build server> \d$\Builds\<Build Name>\<Build File Name>_20141210.6\_PublishedWebsites\<web proj>
      

      案例 2:构建一个 csproj

      一个。在源代码设置中,您只需单独提及您的 csproject 文件夹和依赖文件夹路径。

      b.在 Process -> Items to build 中,您必须提及您的 csproject 文件。

      如果您正在寻找更具体的内容,请告诉我们。

      【讨论】:

        猜你喜欢
        • 2013-05-19
        • 1970-01-01
        • 2013-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-25
        • 2014-09-06
        相关资源
        最近更新 更多