【问题标题】:prevent Team Build dropping all binaries to the root of the drop folder防止 Team Build 将所有二进制文件放到放置文件夹的根目录
【发布时间】:2012-04-25 21:17:42
【问题描述】:

Team Build Number Format 的默认配置是:

$(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)

它会将所有输出降到 \\foo\bar\MyBuildDef_20111031.1 到目前为止很棒的东西!

小问题是它会删除该目录中的所有二进制文件,而没有很好地指示二进制文件的依赖关系。

您如何修改此属性,或者以其他方式将解决方案的二进制文件放到它们各自的项目目录中?

在上面的例子中,我预计 MVC 网站(连同它的 bin 目录)会被删除。取而代之的是,我们在根目录中获得了额外的二进制文件。

换句话说:TFS,请停止删除根目录中的所有二进制文件;它看起来很乱,而且令人困惑的是哪些文件属于/与什么相关联。

如何使用 Team Build 2010 实现这一目标?

【问题讨论】:

    标签: tfs tfsbuild


    【解决方案1】:

    这篇博文应该可以帮到你:http://blogs.msdn.com/b/willbar/archive/2011/02/05/splitting-team-build-outputs-into-folders.aspx

    本质上,您为每个项目创建一个新的“平台”。默认情况下,Team Build 会将每个平台放在不同的目录中,因此您的每个项目都会获得不同的目录。

    构建配置对话框:

    放置文件夹输出:

    【讨论】:

    • 我将这个想法用于我的 NServiceBus 解决方案之一。现在,我的解决方案中的每个项目都会构建,并且相关的二进制文件都被复制到相应的团队基础服务器构建文件夹中。这使我能够在同一个解决方案中保留多个使用 NServiceBusHost.exe 托管服务端点的项目。这篇文章为我节省了数小时寻找解决方案的时间。谢谢!
    • 没有反对链接到 MSDN 博客的这个答案的作者。但是这个答案绝对是疯了。我不敢相信 MSDN 博客作者会建议我们这么麻烦。一定有更好的办法。
    【解决方案2】:

    不幸的是,我还没有找到一个好的方法来做到这一点,尽管我已经有一段时间没有尝试找到比我决定的更好的解决方案了。

    Current 为每个桌面应用程序提供解决方案,并为所有网站提供解决方案。然后我按照here 的说明将每个解决方案输出到一个单独的文件夹中。

    【讨论】:

    • 更改构建过程模板确实是比添加大量不同的构建配置更好的解决方案。特别是如果您希望构建服务器同时生成代码的调试和发布版本,或者您以后需要支持多个平台。
    猜你喜欢
    • 1970-01-01
    • 2014-02-22
    • 2013-01-31
    • 2012-08-11
    • 2017-02-19
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多