【问题标题】:Suggestions for building legacy product patches after upgrading to TFS 2012升级到 TFS 2012 后构建旧产品补丁的建议
【发布时间】:2013-04-27 06:29:15
【问题描述】:

我们正在考虑将 TFS 2010 服务器升级到 TFS 2012。据我了解,这也需要将构建服务器升级到 TFS 2012。不幸的是,安装 TFS 2012 构建服务器似乎会导致安装 .NET 4.5。 .NET 4.5 是 .NET 4.0 的就地升级,因此所有 .NET 4.0 组件(包括 C# 编译器)在安装时都会被替换。我不希望在负责构建我们已建立的遗留产品补丁的构建服务器上执行此操作 - 我们没有资源来全面测试使用 .NET 4.5 编译器/框架构建时启动时不会导致问题到目前为止,它们一直是使用 .NET 4.0 组件构建的,我在网上看到许多帖子表明从 .NET 4.0 迁移到 4.5 可能会导致编译中断。 在这个阶段,我只看到两个选项: a) 维护一个单独的 TFS 2010 系统,仅用于构建遗留产品。 b) 不要使用构建服务器来构建补丁(在仅使用 .NET 4.0/VS 2010 的机器上针对构建定义手动执行 msbuild - 假设这是可能的?)

欢迎提出任何建议!

(编辑:做了一点阅读,我没有看到从命令行从构建定义/构建过程文件执行构建的任何直接方法:是的,有 tfsbuild 但这只是告诉 TFS 构建服务器构建它。使用Windows Workflow Foundation命令行工具可能会以某种方式实现,但很难看出如何.更有可能我必须将构建脚本重写为某种批处理文件,调用msbuild来构建解决方案,然后根据需要调用其他工具构建/签署安装程序并复制到所需的位置。)

【问题讨论】:

    标签: .net tfs .net-4.5


    【解决方案1】:

    从 TFS 2012 更新 2 开始,您可以continue to use TFS 2010 build agents。因此,您可以继续构建您的 .net 4.0 代码,而不必担心与 4.5 的兼容性

    【讨论】:

    • 谢谢!一定会调查的。
    • 我们已安装更新 2 并确认您可以附加 TFS 2010 构建代理,但我不知道您是否可以在 TFS 上使用为 TFS 2010(使用 VS 2010)编译的自定义活动程序集2012 构建服务器 - 基本上我们需要 2010 和 2012 构建服务器(用于构建单独的产品),但希望使用相同的自定义活动程序集。我目前收到错误“无法从程序集'Microsoft.TeamFoundation.Build.Workflow,版本= 11.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a'中加载类型'Microsoft.TeamFoundation.Build.Workflow.Activities.BuildMessage'”
    • (cont) 请注意,我最初使用在 VS 2012 下构建的自定义活动链接到 TFS 2012(版本 11.0.0.0)程序集实际上得到了这个错误,然后回滚到旧版本,确保较新的版本已从我的系统中完全清除(检查了 GAC,重新启动了所有服务),但仍然出现相同的错误。我编写了一个简单的控制台应用程序来模拟调用自定义构建活动,它工作正常。尝试将调试器附加到 TFS 构建服务进程,但没有成功。
    • FWIW,我最终能够解决此问题的唯一方法是删除对此类型的任何引用,并改用 TrackBuildMessage 扩展函数。使用它,我可以确认为 TFS 2010 构建的自定义活动程序集将在 TFS 2012(更新 2)服务器下工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    相关资源
    最近更新 更多