自2009年微软发布Windows 7以来,经过8年的市场验证,Windows 7已经成为史上应用最为广泛的操作系统。但是面对技术变化的日新月异,2015年微软正式停止了对Windows 7的主流支持,并将于2020年正式结束对Windows 7的所有技术支持。这一运行了8年之久的操作系统,在微软发布Windows 8、Windows 10以后多年,仍然保留着强大的生命力,至今还是许多企业和政府部门内部计算机的主流操作系统。

基于这种状况,许多应用程序的开发环境目前只支持Windows 7操作系统。作为目前广泛使用的ALM产品,TFS同样支持基于Windows 7的编译和发布技术。下面我来介绍如何在Windows 7计算机上安装和配置TFS的代理服务器,为研发团队完成持续集成提供必要的服务器环境。

必要软件

在今天的实验环境中,我使用了下面列表中必须的软件:

- Windows 7 with Service Pack 1

- Microsoft .Net Framework 4.0 (dotNetFx40_Full_x86_x64.exe)

- Microsoft .Net Framework 4.5 (mu_.net_framework_4.5_r2_x86_x64_1076098.exe)

- Microsoft .Net Framework 4.6.1 (NDP461-KB3102436-x86-x64-AllOS-ENU.exe)。在实际应用中,可能只需要安装Framework 4.6.1就可以,大家可以自己验证。

- Windows Management Framework 3.0 (Microsoft Powershell 3 - Windows6.1-KB2506143-x64.exe),注意选择Windows6.1

- Windows6.1-KB2533623-x64.msu

- VSTS (TFS) Agent for Windows (vsts-agent-win7-x64-2.112.0.zip)

安装PowerShell 3

PowerShell 3是VSTS/TFS代理服务的必要条件。

但是,原生的Windows 7自带PowerShell的版本是2009,也就是PowerShell 2.0,你可以使用$PSVersionTable查看Powershell的版本。

在Powershell 2.0的环境中配置TFS代理,你会碰到一堆的错误,最后提示需要Powershell 3.0以上版本,如下图:

安装Powershell 3.0,实际上也是安装补丁KB2506146。注意需要下载对应的安装包程序,例如64位系统不要下载32位的安装程序。

如果系统提示”此更新不适用于你的计算机“,原因可能是你的计算机上没有安装.NET Framework 4,这是PS 3的必要条件。

安装.NET Framework 4.0,如下图:

.NET Framework 4.0安装成功,不需要重新启动操作系统

再次运行Powershell 3的安装包,系统提示正常,如下图:

安装成功后,安装系统提示重新启动计算机,如下图:

重新启动计算机后,再次运行$PSVersionTable,你会看到PSVersion的值为3.0,如下图:

安装VSTS/TFS代理服务

Failed to load hostfxr.dll,谷歌了一下,发现需要安装补丁KB2533623, https://www.microsoft.com/en-us/download/confirmation.aspx?id=26764

系统提示需要.Net Framework 4.5或者更高版本。实际上,如果你在Windows 7上安装Framework 4.6,会碰到其他错误,这里不在赘述。我们老老实实的安装.Net Framework 4.5吧。

.NET Framework安装完毕,再次执行配置程序,系统提示需要安装.NET Framwork 4.6,才可以同步TFVC代码库

本来打算配置好代理以后,再安装Framework 4.6,结果在配置过程中,输入服务账户的密码以后,系统提示应用程序无法启动,需要Framework 4.5.2。

手头没有.NET Framework 4.5.2。好吧,那我安装.NET Framework 4.6.1

安装完成Framework 4.6.1以后,重新来配置TFS代理。由于之前已经配置了TFS的服务程序,需要使用config.exe remove命令删除之前的配置信息,再重新启动配置程序

重新配置以后,终于看到了代理服务程序成功启动的提示

在TFS服务的代理池中,也可以看到刚刚新增的代理服务器

新建一个生成定义,在流程中通过命令行显示操作系统名字和版本,并且指定WIN7这台代理执行编译流程,执行结果如下图,显示代理服务器运行正常。

总结

上面走了好多了弯路,后来又在一台全新的Windows 7 with SP1上验证了整过过程,发现可以简单归纳为下面的几个步骤:

- 安装.NET Framework 4.6.1 (NDP461-KB3102436-x86-x64-AllOS-ENU.exe)

- 安装Powershell 3 (Windows6.1-KB2506143-x64.msu)

- 重新启动计算机

- 安装补丁:Windows6.1-KB2533623-x64.msu,修复问题Failed to load hostfxr.dll。

- 安装VSTS/TFS代理程序

(微软ALM MVP 张洪君 http://www.cnblogs.com/danzhang

在Windows 7上安装Team Foundation Server(TFS)的代理服务器(Agent)的更多相关文章

  1. 安装Team Foundation Server 2012过程截图

    原文:安装Team Foundation Server 2012过程截图 专题图 1,下载Team Foundation Server 2012  官方下载: http://www.microsoft ...

  2. Visual Studio 6 (VC6)连接Team Foundation Server (TFS 2018),实现源代码的版本管理

    1. 概述 Visual Studio 6(VB6, VC6, Foxpro-)是微软公司在1998年推出的一款基于Windows平台的软件开发工具,也是微软推出.NET开发框架之前的最后一个IDE工 ...

  3. PLSQL(PL/SQL)集成Team Foundation Server (TFS),实现数据库代码的版本管理

    PL/SQL是面向Oralcle数据库的集成开发环境,是众多Oracle数据库开发人员的主要工具.由于PL/SQL(百度百科)不仅是一种SQL语言,更是一种过程编程语言,在项目实施过程中,会积累大量除 ...

  4. 在域信任环境中使用 Team Foundation Server (TFS 2013)

    原文:在域信任环境中使用 Team Foundation Server (TFS 2013) 1. 用户情景和方案: XX公司的大部分软件产品通过软件外包的方式由开发商完成.为加强对软件开发的进度和质 ...

  5. Team Foundation Server (TFS)与Project Server集成,使用DNS(友好地址)地址注册PWA

    问题描述: 当Team Foundation Server(TFS 2010/2012/2013)与Project Server高可用性的环境集成时,必然会使用Project Server (PWA) ...

  6. 在Sublime中集成Team Foundation Server (TFS),实现版本管理

    Sublime是一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,由于它开发的技术架构.丰富的插件,和轻盈而快速的编程响应,Sublime广受程序员的爱好.在C, C++, Javascri ...

  7. 让Team Foundation Server/TFS自动记住用户名密码解决方案

    在使用Team Foundation Server(以下简称TFS) 的时候,在每次打开Visual Studio TFS时候,需要输入用户名和秘密,比较麻烦.现提供一种方法可以解决这个问题: 依次执 ...

  8. 自定义Team Foundation Server (TFS) 与Project Professional的集成字段

    用户可以象使用Office Excel一样,使用Project Professional连接TFS,将数据下载到本地修改,并且发布到TFS服务器上,如果你习惯使用Project来计划你的项目,那么Pr ...

  9. 版本管控---Visual Source Safe(VSS)和Team Foundation Server(TFS)

    Visual Source Safe 是用于软件专业开发人员的源代码管理工具 Team Foundation Server是为开发团队提供集成源代码管理.问题跟踪和进程管理的更改管理系统 相同点 1. ...

随机推荐

  1. Codeforces 1136E Nastya Hasn't Written a Legend (线段树教做人系列)

    题意:有一个数组a和一个数组k,数组a一直保持一个性质:a[i + 1] >= a[i] + k[i].有两种操作:1,给某个元素加上x,但是加上之后要保持数组a的性质.比如a[i]加上x之后, ...

  2. 找峰值I II · Find Peak Element I ii

    一句话思路:找最大的元素.没有target? 一刷报错: 一定要用二分,否则复杂度不是最优. 判断条件是nums[mid] < nums[mid + 1],还是基于中位数比较的原理.不是nums ...

  3. Spring_AOP动态代理详解(转)

    在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的 ...

  4. silverlight的Datagrid控件列绑定属性笔记

    <data:DataGridTemplateColumn Header="给作者留言"> <data:DataGridTemplateColumn.CellTem ...

  5. ueditor使用注意

    问题1:后端配置项没有正常加载,上传插件不能正常使用! 我用的是开发版,1.4.3.3 .Net版 网上查了很多,后来发现只是配置的问题而已. 1.在根目录下:config.json 其中有Img上传 ...

  6. Linux ldconfig命令

    一.简介 ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig. ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/u ...

  7. Java数据结构和算法(三)顺序存储的树结构

    Java数据结构和算法(三)顺序存储的树结构 二叉树也可以用数组存储,可以和完全二叉树的节点一一对应. 一.树的遍历 // 二叉树保存在数组中 int[] data; public void preO ...

  8. DB2 create into的用法

    . 建立表 create table zjt_tables as (select * from tables) definition only; create table zjt_views as ( ...

  9. pyspider示例代码七:自动登陆并获得PDF文件下载地址

    自动登陆并获得PDF文件下载地址 #!/usr/bin/env python # -*- encoding: utf- -*- # Created on -- :: # Project: pdf_sp ...

  10. Linux应用开发入门(转)

    今天偶然看到这篇文章,做个入门了解还是不错的. 前一阵子在QQ上和朋友聊天的时候,总会看到有人说Linux上的应用程序开发是高手才可以完成的,而且这种“迷信”在目前似乎还很普遍.然而,情况并不是这样的 ...