<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>众妙之门</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/xuhao/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/xuhao/feed.xml</link>
    <description>许豪的微博</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:51:50 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>TFS操作手册用户指南</title>
      <link>https://docs.microsoft.com/archive/blogs/xuhao/tfs</link>
      <pubDate>Wed, 14 Oct 2015 23:20:00 GMT</pubDate>
      <dc:creator><![CDATA[Xu Hao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/xuhao/2015/10/14/tfs/</guid>
      <description><![CDATA[TFS操作手册
TFS用户指南
TFS WEB Access 操作手册.mht]]></description>
      <content:encoded><![CDATA[<p>TFS操作手册</p>
<p>TFS用户指南</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/64/79/50/TFS%20WEB%20Access%20CD645C4F4B628C51.mht" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-64-79-50/TFS-WEB-Access-_CD645C4F4B628C51_.mht">TFS WEB Access 操作手册.mht</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Azure IaaS TFS 脚本部署的法门</title>
      <link>https://docs.microsoft.com/archive/blogs/xuhao/azure-iaas-tfs</link>
      <pubDate>Mon, 25 May 2015 20:47:00 GMT</pubDate>
      <dc:creator><![CDATA[Xu Hao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/xuhao/2015/05/25/azure-iaas-tfs/</guid>
      <description><![CDATA[首先需要启用脚本执行，可以搜索到powershell右键点击&ldquo;以管理员身份运行&rdquo;，或者进行如下操作
打开&ldquo;运行&rdquo;窗口或者热键win+r
输入并运行P...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;">首先需要启用脚本执行，可以搜索到powershell右键点击&ldquo;以管理员身份运行&rdquo;，或者进行如下操作</span></p>
<p><span style="font-size: small;">打开&ldquo;运行&rdquo;窗口或者热键win+r</span></p>
<p><span style="font-size: small;">输入并运行PowerShell</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">在Powershell窗口中 输入</span></p>
<p><span style="font-size: small;">Start-Process PowerShell -Verb RunAs</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">此时会以管理员方式启动一个powershell，在此管理员powershell窗口中输入</span></p>
<p><span style="font-size: small;">Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: small;">Azure环境准备</span></p>
<p><span style="font-size: small;">运行1-tfs-azure-env-config.ps1</span></p>
<p><span style="font-size: small;">[View:https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-71-16/7711.tfsenvscript.MP4]</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">TFS安装</span></p>
<p><span style="font-size: small;">在虚机中运行2-tfs-server-installation.ps1</span></p>
<p><span style="font-size: small;">[View:https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-71-16/3051.tfsinstall.mp4]</span></p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/61/71/13/tfs2015-script-v2.0.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-61-71-13/tfs2015_2D00_script_2D00_v2.0.zip">tfs2015-script-v2.0.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>TFS2015服务器和构建环境一键安装</title>
      <link>https://docs.microsoft.com/archive/blogs/xuhao/tfs2015</link>
      <pubDate>Sun, 17 May 2015 20:28:00 GMT</pubDate>
      <dc:creator><![CDATA[Xu Hao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/xuhao/2015/05/17/tfs2015/</guid>
      <description><![CDATA[昨天看见一句&ldquo;程序员花了300小时谈恋爱，却花了1000小时安装依赖&rdquo;，莫名戳中泪点。所以当即决定从此要用自动化来提高生产力。
&nbsp;
TFS2015自身的安装配置过...]]></description>
      <content:encoded><![CDATA[<p>昨天看见一句&ldquo;程序员花了300小时谈恋爱，却花了1000小时安装依赖&rdquo;，莫名戳中泪点。所以当即决定从此要用自动化来提高生产力。</p>
<p>&nbsp;</p>
<p>TFS2015自身的安装配置过程是比较简化的，由于其支持的构建系统众多，所以在&ldquo;装机&rdquo;过程中还是有不少烦恼。这个脚本工具可以自动地安装TFS2015RC及其构建系统所使用到的软件环境，对于系统管理员来讲还是非常的审事的。</p>
<p>请从附件中下载安装脚本，此脚本包含TFS2015RC，VS2015RC 以及python，nodejs，JAVA开发环境，不包含SQL数据库</p>
<p>所有内容托管在github里面：<a href="https://github.com/8106040/tfs2015">https://github.com/8106040/tfs2015</a></p>
<p>说明：</p>
<p>包含两个脚本，使用方法简单，都是直接运行脚本便可以执行安装过程。安装文件均从网络下载，所以安装时间取决于网络连接速度。</p>
<p>tfs-server-install.ps1 是TFS服务器安装脚本</p>
<p>tfs-linuxagent.sh 是linux构建服务代理安装脚本</p>
<p>&nbsp;</p>
<p>注意事项：</p>
<p>1. 推荐使用Azure虚机来安装试用。</p>
<p>2. 如果使用其他环境，请确保安装机器有互联网连接。</p>
<p>3.此脚本尚不具备配置功能，仅包含环境软件预装</p>
<p>&nbsp;&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/61/53/52/tfs2015-script-v1.0.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-61-53-52/tfs2015_2D00_script_2D00_v1.0.zip">tfs2015-script-v1.0.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>为本地TFS2015服务器的Build.preview部署Linux生成代理（Build Agent）</title>
      <link>https://docs.microsoft.com/archive/blogs/xuhao/tfs2015build-previewlinuxbuild-agent</link>
      <pubDate>Wed, 13 May 2015 03:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Xu Hao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/xuhao/2015/05/13/tfs2015build-previewlinuxbuild-agent/</guid>
      <description><![CDATA[Team Foundation Server...]]></description>
      <content:encoded><![CDATA[<p>Team Foundation Server 2015重新设计了构建功能，能够让用户快速的将现有的生成系统作为TFS的构建服务代理（Agent）。但是目前TFS2015RC还不是正式版本，在配置方面还有许多不方便的地方，下面把我趟过的坑给大家说明一下。</p>
<p>&nbsp; 第一，Linux下的Agent运行需要node.js环境，&nbsp;&nbsp;这一步一般无碍，更多配置请参考：&nbsp;<a href="https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager">https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager</a></p>
<p>我是用ubuntu，所以就</p>
<p><code>1. curl -sL https://deb.nodesource.com/setup | sudo bash -</code></p>
<p><code>2. <code>sudo apt-get install -y nodejs</code></code></p>
<p>&nbsp; 第二，TFS跨平台代理的配置方法在这里，更说明请看：<a href="https://www.npmjs.com/package/vsoagent-installer">https://www.npmjs.com/package/vsoagent-installer</a>，请注意，服务方式运行仅供OSX，Linux下是交互式，nodup，或docker。</p>
<p>1. sudo&nbsp;npm&nbsp;install&nbsp;vsoagent-installer&nbsp;-g</p>
<p>2. mkdir linuxagent</p>
<p>3. cd linuxagent</p>
<p>4. vsoagent-installer</p>
<p>&nbsp; 第三，先停在这里别往下，因为坑来了，由于Agent是集成VSO的配置，在本地TFS里面没有设置账号的地方。所以我们需要在IIS中配置基本验证。。。这一步卡了我几天</p>
<p><code>1. powershell命令: dism /online /enable-feature /featurename:IIS-BasicAuthentication</code></p>
<p>&nbsp;2. 图形化配置如下：</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/32/2376.searchresult.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-32/2376.searchresult.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/32/2376.searchresult.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-32/2376.searchresult.png" alt="" width="370" height="227" border="0" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/32/2870.TopLevelTree.JPG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-32/2870.TopLevelTree.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/32/2870.TopLevelTree.JPG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-32/2870.TopLevelTree.JPG" alt="" width="307" height="276" border="0" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/32/4810.UnderSecurity.JPG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-32/4810.UnderSecurity.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/32/4810.UnderSecurity.JPG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-32/4810.UnderSecurity.JPG" alt="" width="325" height="277" border="0" /></a></p>
<p>3. 在IIS中为TFS增加基本认证</p>
<p><a href="https://lh3.googleusercontent.com/-aUBDhx8hz4c/VUnafwmZ85I/AAAAAAAAAwQ/dVwUIkQY-_Q/s1600-h/Basic-Authentication3.png"><img style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="Basic Authentication" src="https://lh3.googleusercontent.com/-vDbg85CBYdY/VUnahA0wwsI/AAAAAAAAAwY/mv1cNly9J-0/Basic-Authentication_thumb1.png?imgmax=800" alt="Basic Authentication" width="526" height="206" border="0" /></a></p>
<p>4. 为Agent增加账户权限，这个用户就是你在之后创建Agent所使用的账户</p>
<p><a href="https://lh3.googleusercontent.com/-1P9fhFGZz3g/VUnaiKLSBxI/AAAAAAAAAwg/2NxhF9efprM/s1600-h/Assign-Pool-Rights3.png"><img style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="Assign Pool Rights" src="https://lh3.googleusercontent.com/-_PTWTPw3LAk/VUnajKDvWgI/AAAAAAAAAwo/S3dDfOh8hD8/Assign-Pool-Rights_thumb1.png?imgmax=800" alt="Assign Pool Rights" width="436" height="175" border="0" /></a></p>
<p>第四，继续下去吧！</p>
<p>cd linuxagent</p>
<p>node vsoagent</p>
<p><a href="https://lh3.googleusercontent.com/-xZtvFvda3uU/VUnasoHBGmI/AAAAAAAAAww/Go_XQ2vn-aA/s1600-h/Agent-Config3.png"><img style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="Agent Config" src="https://lh3.googleusercontent.com/-oCmLWrB0DJk/VUnauebltlI/AAAAAAAAAw4/KFA2lph9D6Y/Agent-Config_thumb1.png?imgmax=800" alt="Agent Config" width="481" height="334" border="0" /></a></p>
<p>注意输入URL 一定是<a href="https://<YourTFSURL>:8080/tfs">https://&lt;YourTFSURL&gt;:8080/tfs</a>，pool name是在TFS代理池中你创建的代理名字，缺省是default</p>
<p>&nbsp;</p>
<p>好了，你可以体验了</p>
<p><a href="https://lh3.googleusercontent.com/-eNbmgoOA70o/VUnavQfbKEI/AAAAAAAAAxA/21mZTK9t1ic/s1600-h/Active-Agent-in-TFS3.png"><img style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="Active Agent in TFS" src="https://lh3.googleusercontent.com/-JsdazkAuXHQ/VUnawaqmT8I/AAAAAAAAAxI/mxUg9riUwVM/Active-Agent-in-TFS_thumb1.png?imgmax=800" alt="Active Agent in TFS" width="515" height="268" border="0" /></a></p>
<p>&nbsp;</p>
<p>TFBuild官方说明</p>
<p><a href="https://vsalmdocs.azurewebsites.net/library/vs/alm/build/overview">https://vsalmdocs.azurewebsites.net/library/vs/alm/build/overview</a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>